iOS開發之調用系統打電話發簡訊介面以及程式內發簡訊,ios發簡訊

來源:互聯網
上載者:User

iOS開發之調用系統打電話發簡訊介面以及程式內發簡訊,ios發簡訊

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

  一、調用系統功能

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

    1.打電話

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

  二、在本應用中開啟

    上面的方法都是開啟相應的應用程式,然後做相應的事情,那麼我們如何在本應用中就可以給我們的使用者傳送簡訊呢?下面就讓我們來實現這個功能

    1.引入我們要用的framework(其實在應用程式內傳送簡訊和ImagePickerViewController的用法極為的相似,沒有什麼困難的地方),我們需要引入MessageUI.framework,入

    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 }

 

  到此就可以傳送簡訊了,本篇部落格先就到這兒吧~ 


c#開發可以調用的免費簡訊發送功可以介面

現在免費的介面已經基本沒有了
我用的時代互聯的sms介面,你有興趣可以自己看一下,要錢的
介面是現成的調用很方便
 
android 小應用,直接調用系統簡訊介面傳送簡訊失敗,是什原因?在模擬器上可以正常發送

小米很多模組都不是原生的,進行了一定的修改,所以一般的方法調用可能會出錯,就像小米的相機調用也和一般手機有些不同。希望能夠幫到你,如還有什麼疑問我們可以繼續交流。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.