html tel



當短信應用程序未在後台運行時,無法在iPhone上的SMS鏈接中預先填充電話號碼和消息正文 (1)

HTML允許您使用以下鏈接輕鬆與短信應用進行交互:

<a href="sms:">Send a SMS</a>

不過,不同的操作系統允許您預先填充電話號碼和消息正文使用:

<a href="sms:1234567890?body=Pre-Populted%20Message">Link</a>

在Android上,或

<a href="sms:1234567890&body=Pre-Populted%20Message">Link</a>

在iOS 8+上

這個問題已經很好地解釋了

然而,我注意到iPhone上的一個問題,我似乎無法找到一個解決方案:如果短信應用程序沒有運行在您的iPhone的背景,點擊鏈接將打開短信應用程序, 但不會預先填充電話號碼和消息正文在一個新的消息。

由於Google AdWords也在使用這個功能 ,所以我也測試了他們的鏈接,但不幸的是他們也遭遇了同樣的問題,所以我懷疑是否有解決方案,但是仍然希望在這裡與社區聯繫。


你應該使用Apple的MessageUI Package

   import MessageUI

並在viewController裡面寫這個代碼來發送消息

   if MFMessageComposeViewController.canSendText() {
            let vc = MFMessageComposeViewController()
            vc.messageComposeDelegate = self
            vc.recipients = ["PHONE_NUMBER"]
            vc.body = "MESSAGE_BODY"
            self.presentVC(vc)
   }

不要忘記實現代理功能// MARK: - MessageUI Delegates

extension VIEWCONTROLLER_CLASS: MFMessageComposeViewControllerDelegate, MFMailComposeViewControllerDelegate {
   func messageComposeViewController(_ controller: 
   MFMessageComposeViewController, didFinishWith result: 
   MessageComposeResult) {
          switch result {
           case .cancelled:
               controller.dismiss(animated: true, completion: nil)
           case .sent:
               controller.dismiss(animated: true, completion: nil)
           case .failed:
               controller.dismiss(animated: true, completion: nil)
          }
    }

   func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
          controller.dismiss(animated: true, completion: nil)
   }
 }




sms