swift UI專項訓練40 用swift實現打電話和發簡訊功能

來源:互聯網
上載者:User

標籤:ios8   swift   ui設計   mfmessagecompose   uiapplication   

   今天來講一下如何讓我們的APP可以訪問系統的簡訊和電話功能。首先來說簡訊功能,比較簡單,跟之前的做法差別不大,要使用UIApplication,它是一個單例。我們的功能是點擊一個按鈕,然後撥通一個內建的電話,需要在button的action中加入如下語句:

   @IBAction func phoneBtn(sender:UIButton){       // var url1 = NSURL(string: "tel://"+canguanArray[0].tel)        var url1 = NSURL(string: "tel://10086")        UIApplication.sharedApplication().openURL(url1!)    }

tel關鍵字代表電話,跟之前oc上的做法差不多,如果要撥打的電話是傳值獲得的,參考注釋中的寫法。除了tel關鍵字,還有sms關鍵字:

        var url1 = NSURL(string: "sms://10086")

這樣的話是開啟了10086的簡訊介面,如果我們要開啟一個瀏覽器介面,使用下面代碼:

 var url1 = NSURL(string: "http://blog.csdn.net/cg1991130")

不過使用這種方法發簡訊不能設定簡訊的內容,只能設定收信人。如果我們想要自訂發簡訊的內容的話,使用下面的方法:

首先在vc中匯入標頭檔:

import MessageUI

之後讓vc繼承MFMessageCompose的代理:

class CaipinDetailViewController: UIViewController,MFMessageComposeViewControllerDelegate 
func canSendText() -> Bool{    return MFMessageComposeViewController.canSendText()    }//用來指示一條訊息能否從使用者處發送    func configuredMessageComposeViewController() -> MFMessageComposeViewController{    let messageComposeVC = MFMessageComposeViewController()        messageComposeVC.messageComposeDelegate = self        messageComposeVC.body = "HI! \(caipinArray[0].rest) 的 \(caipinArray[0].name) 味道很不錯,邀你共用 -來自SoFun的邀請"        return messageComposeVC            }     func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) {        controller.dismissViewControllerAnimated(true, completion: nil)    }

然後在按鈕的action方法中加入以下代碼:

   @IBAction func share(sender: UIButton) {        let shareView = ShareViewController()        self.presentViewController(shareView, animated: true, completion: nil)    }    @IBAction func message(sender: UIButton) {        if self.canSendText(){        let messageVC = self.configuredMessageComposeViewController()          presentViewController(messageVC, animated: true, completion: nil)        } else {        let errorAlert = UIAlertView(title: "不能發送", message: "你的裝置沒有簡訊功能", delegate: self, cancelButtonTitle: "取消")        }            }

我們在真機上測試一下,:




swift UI專項訓練40 用swift實現打電話和發簡訊功能

相關文章

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.