第三十六篇:發送方式與真機調試過程

1.打電話:

》打電話-方法1

•最簡單最直接的方式:直接跳到撥號界面

NSURL *url= [NSURL URLWithString:@"tel://10010"];

[[UIApplication sharedApplication] openURL:url];

•缺點

電話打完後,不會自動回到原應用,直接停留在通話記錄界面

打電話-方法2

•撥號之前會彈框詢問用戶是否撥號,撥完後能自動回到原應用

NSURL *url= [NSURL URLWithString:@"telprompt://10010"];

[[UIApplication sharedApplication] openURL:url];

•缺點

因爲是私有API,所以可能不會被審覈通過

打電話-方法3

•創建一個UIWebView來加載URL,撥完後能自動回到原應用

if (_webView == nil) {

   _webView = [[UIWebView alloc] initWithFrame:CGRectZero];

}

[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"tel://10010"]]];

需要注意的是:這個webView千萬不要添加到界面上來,不然會擋住其他界面


2.發短信:

發短信-方法1

•直接跳到發短信界面,但是不能指定短信內容,而且不能自動回到原應用

NSURL *url= [NSURL URLWithString:@"sms://10010"];

[[UIApplication sharedApplication] openURL:url];

發短信-方法2

•如果想指定短信內容,那就得使用MessageUI框架
•包含主頭文件

#import<MessageUI/MessageUI.h>

•顯示發短信的控制器

MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init];

// 設置短信內容

vc.body = @"吃飯了沒?";

// 設置收件人列表

vc.recipients = @[@"10010", @"02010010"];

// 設置代理

vc.messageComposeDelegate = self;

// 顯示控制器(Moda方式顯示)

[self presentViewController:vc animated:YES completion:nil];

• MFMessageComposeViewController代理方法,當短信界面關閉的時候調用,發完後會自動回到原應用

- (void)messageComposeViewController:(MFMessageComposeViewController*)controller didFinishWithResult:(MessageComposeResult)result

{

   //關閉短信界面

   [controller dismissViewControllerAnimated:YES completion:nil];

   if(result == MessageComposeResultCancelled) {

        NSLog(@"取消發送");

   } else if(result == MessageComposeResultSent) {

        NSLog(@"已經發出");

   } else {

        NSLog(@"發送失敗");

   }

}


3.發郵件

發郵件-方法1

•用自帶的郵件客戶端,發完郵件後不會自動回到原應用

NSURL *url= [NSURL URLWithString:@"mailto://[email protected]"];

[[UIApplication sharedApplication] openURL:url];

發郵件-方法2

•跟發短信的第2種方法差不多,只不過控制器類名叫做:MFMailComposeViewController
•假設發送的郵件內容如右圖所示,代碼實現

// 不能發郵件
if (![MFMailComposeViewController canSendMail]) return;

MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init];

// 設置郵件主題
[vc setSubject:@"會議"];
// 設置郵件內容
[vc setMessageBody:@"今天下午開會吧" isHTML:NO];
// 設置收件人列表
[vc setToRecipients:@[@"[email protected]"]];
// 設置抄送人列表
[vc setCcRecipients:@[@"[email protected]"]];
// 設置密送人列表
[vc setBccRecipients:@[@"[email protected]"]];

// 添加附件(一張圖片)
UIImage *image = [UIImage imageNamed:@"lufy.jpeg"];
NSData *data = UIImageJPEGRepresentation(image, 0.5);
[vc addAttachmentData:data mimeType:@"image/jepg" fileName:@"lufy.jpeg"];

// 設置代理
vc.mailComposeDelegate = self;
// 顯示控制器
[self presentViewController:vc animated:YES completion:nil];
•郵件發送後的代理方法回調,發完後會自動回到原應用
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
    // 關閉郵件界面
    [controller dismissViewControllerAnimated:YES completion:nil];
    
    if (result == MFMailComposeResultCancelled) {
        NSLog(@"取消發送");
    } else if (result == MFMailComposeResultSent) {
        NSLog(@"已經發出");
    } else {
        NSLog(@"發送失敗");
    }
}


4.打開其他常見文件
•如果想打開一些常見文件,比如html、txt、PDF、PPT等,都可以使用UIWebView打開
•只需要告訴UIWebView文件的URL即可
•至於打開一個遠程的共享資源,比如http協議的,也可以調用系統自帶的Safari瀏覽器:

NSURL *url= [NSURL URLWithString:@”http://www.baidu.com"];

[[UIApplication sharedApplication] openURL:url];


5.應用間跳轉

•有時候,需要在本應用中打開其他應用,比如從A應用中跳轉到B應用
•首先,B應用得有自己的URL地址(在Info.plist中配置)

B應用的URL地址就是:mj://ios.itcast.cn

•接着在A應用中使用UIApplication完成跳轉

NSURL *url= [NSURL URLWithString:@"mj://ios.itcast.cn"];

[[UIApplication sharedApplication] openURL:url];

應用評分

•爲了提高應用的用戶體驗,經常需要邀請用戶對應用進行評分
•應用評分無非就是跳轉到AppStore展示自己的應用,然後由用戶自己撰寫評論
•如何跳轉到AppStore,並且展示自己的應用
Ø方法1

NSString *appid= @"444934666";

NSString *str= [NSString stringWithFormat:

                 @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",appid];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

Ø方法2

NSString *str= [NSString stringWithFormat:

                 @"itms-apps://itunes.apple.com/cn/app/id%@?mt=8",appid];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];



6.真機調試

》真機調試的主要步驟
1.登錄開發者主頁
2.生成cer證書:cer是一個跟電腦相關聯的證書文件,讓電腦具備真機調試的功能
3.添加AppID:調試哪些app?
4.註冊真機設備:哪臺設備需要做真機調試?
5.生成MobileProvision文件:結合2、3、4生成一個手機規定文件
6.導入cerMobileProvision文件

》最終會得到2個文件
Ø Cer文件:讓電腦具備真機調試的功能
Ø MobileProvision文件:哪臺設備、哪些app、哪臺電腦需要做真機調試?

(1)真機調試的步驟01-登錄開發者主頁

•登錄開發者主頁

https://developer.apple.com/membercenter/index.action

•管理證書(前提:得花99$或299$加入開發者計劃)


(2)真機調試的步驟02-生成cer證書

•添加cer證書


•利用鑰匙串生成cer簽名請求文件




•選擇cer簽名請求文件,生成並且下載cer證書



(3)真機調試的步驟03-添加AppID


(4)真機調試的步驟04-註冊真機設備

•利用Xcode查看真機設備的唯一標識(插上USB數據線)


填寫設備名稱和唯一標識

(5) 真機調試的步驟05-生成MobileProvision文件

•添加MobileProvision文件



•選擇App ID

選擇cer證書


選擇真機設備


•填寫MobileProvision文件名

下載MobileProvision文件


(6)真機調試的步驟06-導入cer、MobileProvision文件

•經過前面的幾個步驟,已經得到2個文件

雙擊導入cer文件(可以打開鑰匙串確認證書是否有效)



雙擊導入MobileProvision文件(打開Xcode、連接好真機)


•打開任意程序,選擇真機設別,點擊運行(第一次運行會出現右圖)


>>替換舊的調試證書

有時候需要把項目裏面配置的舊調試證書換掉




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章