国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS開發之調用系統打電話發短信接口以及程序內發短信

2019-11-14 19:57:55
字體:
來源:轉載
供稿:網友

  在本篇博客開頭呢,先說一下寫本篇的博客的原因吧。目前在做一個小項目,要用到在本應用程序內發驗證碼給其他用戶,怎么在應用內發送短信的具體細節想不大起來了,于是就百度了一下,發現也有關于這方面的博客,點進去看了看,個人感到有點小失望,寫的太不詳細,只是簡單的代碼羅列,而且代碼也沒注釋,大概是因為太簡單了吧。今天在做完項目的發短信功能后感覺有必要把這部分內容整理一下,做個紀念也是好的不是嗎。廢話少說,切入今天的正題。下面的發短信,打電話當然需要真機測試了。

  一、調用系統功能

    在iOS中打開系統本身的打電話和發短信功能還是比較簡單的,之前在SSO中也提了一嘴,iOS中可以由一個應用打開另一個應用,只需要一行代碼,打電話,發短信,發email,開網頁也是一樣的 ,只是用的協議不一樣。

    1.打電話

      這個還是比較簡單的,下面是打電話的代碼:%@的內容是手機號self.myapplication是Application的單例。

 

    2.發短信

      發送短信只是和打電話用的協議不一樣改一下協議就可以打電話了

 

    3、發email

      也是換一下協議即可

    

    4.打開網址

 

  二、在本應用中打開

    上面的方法都是打開相應的應用程序,然后做相應的事情,那么我們如何在本應用中就可以給我們的用戶發送短信呢?下面就讓我們來實現這個功能

    1.引入我們要用的framework(其實在應用程序內發送短信和ImagePickerViewController的用法極為的相似,沒有什么困難的地方),我們需要引入MessageUI.framework,入下圖

 

    2.在pch文件導入相應頭文件

    3.下面是實現發送短信的核心代碼

      (1)判斷設備是否有發送短信的功能代碼如下:

 1 //發送短信的方法 2 -(void)sendMessage 3 { 4     //用于判斷是否有發送短信的功能(模擬器上就沒有短信功能) 5     Class messageClass = (NSClassFromString(@"MFMessageComposeViewController")); 6      7     //判斷是否有短信功能 8     if (messageClass != nil) { 9           //有發送功能要做的事情10     }11     else12     {13         14          UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"iOS版本過低(iOS4.0以后)" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];15         16         [alterView show];17     }18     19     20 }

  

    (2).如果有發送短信功能的話,就得判斷iOS版本釋放支持"MFMessageComposeViewController". iOS4.0之后支持

 1     //有短信功能 2         if ([messageClass canSendText]) { 3               //發送短信 4         } 5         else 6         { 7             UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"該設備沒有發送短信的功能~" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil]; 8              9             [alterView show];10         }11     

 

    (3)、經過各種驗證后確定設備可以使用MFMessageComposeViewController,我們就開始用了

 1          //實例化MFMessageComposeViewController,并設置委托 2             MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init]; 3             messageController.delegate = self; 4              5              6             //拼接并設置短信內容 7             NSString *messageContent = [NSString stringWithFormat:@"親愛的,這個是專屬屬你我應用的邀請碼:%@",self.authCodeLabel.text]; 8             messageController.body = messageContent; 9             10             //設置發送給誰11             messageController.recipients = @[self.phoneNumberTextField.text];12             13             //推到發送試圖控制器14             [self PResentViewController:messageController animated:YES completion:^{15                 16             }];

 

    (4),差點給忘了,實現相應的委托回調協議是少不了的~要實現MFMessageComposeViewControllerDelegate,UINavigationControllerDelegate這兩個協議。發送后的回調如下:

 1 //發送短信后回調的方法 2 -(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result 3 { 4     NSString *tipContent; 5     switch (result) { 6         case MessageComposeResultCancelled: 7             tipContent = @"發送短信已"; 8             break; 9         10         case MessageComposeResultFailed:11             tipContent = @"發送短信失敗";12             break;13         14         case MessageComposeResultSent:15             tipContent = @"發送成功";16             break;17             18         default:19             break;20     }21     22     UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"提示" message:tipContent delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];23     [alterView show];24 }

 

  到此就可以發送短信了,本篇博客先就到這兒吧~ 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 元阳县| 隆林| 丹阳市| 凤凰县| 肥乡县| 东城区| 呼玛县| 沙田区| 赤峰市| 准格尔旗| 武胜县| 安吉县| 洛隆县| 丰台区| 延安市| 丹寨县| 青神县| 汕尾市| 南昌县| 吉安市| 榆树市| 清原| 大姚县| 榆林市| 沂水县| 澎湖县| 黄山市| 靖西县| 南投市| 柏乡县| 巴青县| 波密县| 延川县| 炎陵县| 梁山县| 肃宁县| 民权县| 沧州市| 金山区| 当阳市| 从江县|