web-dev-qa-db-ja.com

Swiftを使用してアプリからWhatsAppにメッセージを送信しますか?

私のアプリの1つで、WhatsAppの連絡先とデータを共有したいと思いました。 StackOverflowを超えていくつかのソリューションを試しましたが、正確なソリューションを得ることができませんでした。いくつかの試用が私が探していたものを達成できた後、誰かの将来の参考のためにここで共有します。

13
 var url  = NSURL(string: "whatsapp://send?text=Hello%20Friends%2C%20Sharing%20some%20data%20here...%20!")

//Text which will be shared on WhatsApp is: "Hello Friends, Sharing some data here... !"

    if UIApplication.sharedApplication().canOpenURL(url!) {
        UIApplication.sharedApplication().open(url as URL, options: [:]) { (success) in
                if success {
                    print("WhatsApp accessed successfully")
                } else {
                    print("Error accessing WhatsApp")
                }
            }
    }

注:テキストはURLエンコードする必要があります。これは、インターネットを介して任意のオープンソースツールを使用するか、iOSでaddPercentEncoding(withAllowedCharacters :)関数を使用して取得できます。例えば.

var urlString = "Hello Friends, Sharing some data here... !"
var urlStringEncoded = urlString.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)
var url  = NSURL(string: "whatsapp://send?text=\(urlStringEncoded!)")
21

Swift 3.0

アプリケーションのwhatsappにアクセスするには、このコードを試してください。私にとっては完璧に機能します。

@IBAction func sendButtonAction(_ sender: Any)
{
    let date = Date()
    let msg = "Hi my dear friends\(date)"
    let urlWhats = "whatsapp://send?text=\(msg)"

    if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) {
        if let whatsappURL = NSURL(string: urlString) {
            if UIApplication.shared.canOpenURL(whatsappURL as URL) {
                UIApplication.shared.openURL(whatsappURL as URL)
            } else {
                print("please install watsapp")
            }
        }
    }
}

上記のソリューションへの追加、iOS 9以降、info.plistのLSApplicationQueriesSchemesキーにwhatsappを追加する必要があります。この後、それだけでうまくいきました。

screen shot of solution

4
Lokesh Purohit

私のコードはこのように見えます

let encodeQuizStr = "Check Out The Quiz With link \n http://www.proprofs.com "

        let urlQuizStringEncoded = encodeQuizStr.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)

        guard let whatsAppUrl = NSURL(string: "whatsapp://send?text="+urlQuizStringEncoded!) else { return }

        if UIApplication.shared.canOpenURL(whatsAppUrl as URL) {

            if #available(iOS 10.0, *) {
                print(urlQuizStringEncoded!)
                UIApplication.shared.open(whatsAppUrl as URL, options: [:], completionHandler: nil)
            } else {

                UIApplication.shared.openURL(whatsAppUrl as URL)

            }
        }
        else{


            ProjectUtility.AlertWith(self, message: " What's App is Not Available.", Title: "Sorry")
        }

正常に動作しますが、このURLを配置すると

("http://www.proprofs.com/quiz-school/story.php?title=pq-find-out-which-ice-age-character-you-are ")

その後、機能しませんThanks.HelpWill Appriciatedを確認してください。

2
Avinash Mishra

Swift 5

Add whatsapp in LSApplicationQuerySchemes(Info.plist)

コード

let urlWhats = "whatsapp://send?text=\("Hello World")"
if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) {
      if let whatsappURL = NSURL(string: urlString) {
            if UIApplication.shared.canOpenURL(whatsappURL as URL) {
                 UIApplication.shared.open(whatsappURL as URL)
             } 
             else {
                 print("please install watsapp")
             }
      }
}
1
Barath