2016-09-25 60 views
2

我想發送一個whatsapp消息到存儲在一個全局變量的收件人號碼!發送Whatsapp消息到一個特定的聯繫號碼(Swift項目)

通過這種簡單的代碼:

let whatsAppUrl = NSURL(string: "whatsapp:\(globalPhone)") 



     if UIApplication.shared.canOpenURL(whatsAppUrl as! URL) { 
      UIApplication.shared.openURL(whatsAppUrl as! URL) 
     } 
     else { 
      let errorAlert = UIAlertView(title: "Sorry", message: "You can't send a message to this number", delegate: self, cancelButtonTitle:"Ok") 
      errorAlert.show() 
     } 

我總是得到警報消息的是在其他情況下! 雖然數字永遠是真的! 可能是url語法中的錯誤?

在控制檯:

canOpenURL: failed for URL: "whatsapp:0534260282" - 
"This app is not allowed to query for scheme whatsapp" 

這是做正確的方法是什麼? 或者這種方式只是爲了分享,通過WhatsApp的文字?

回答

3

兩個問題。

第一個是這不是一個有效的網址方案。 URL格式採用格式identifier://params,因此您需要使用whatsapp://phone_number

其次,Apple現在要求您定義您的應用程序在Info.plist文件中使用的外部url方案,該方案嵌套在關鍵LSApplicationQueriesSchemes下。有關更多信息,請參閱iOS 9 not opening Instagram app with URL SCHEME


按照WhatsApp的URL方案的文檔,你不能真正提供你想要的信息發送到聯繫人的電話號碼:https://www.whatsapp.com/faq/en/iphone/23559013

但是,您可以提供你想發送給他們的消息:

whatsapp://send?text=Some%20Text

確保文本的編碼百分比,否則NSURL將無法從提供的字符串中創建有效的URL。

+0

我已經做到了!但是我可以打開whatsapp應用程序而不是我要發送消息的收件人? – Mariah

+0

如何將其直接發送給收件人? – Mariah

+0

@Mariah根據他們的文檔:https://www.whatsapp.com/faq/en/iphone/23559013,它似乎並不可能,但是你可以指定文本。請參閱最新的答案。 –

相關問題