繁体   English   中英

使用 Swift 从您的应用程序向 WhatsApp 发送消息?

[英]Sending message to WhatsApp from your app using Swift?

对于我的一个应用程序,我想将数据分享给 WhatsApp 联系人。 我在 StackOverflow 上尝试了一些解决方案,但无法获得确切的解决方案。 经过一些试验可以实现我想要的,所以在这里分享以供任何人将来参考。

 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!)")

斯威夫特 3.0

尝试使用此代码在您的应用程序中访问 watsapp。 它非常适合我。

@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 开始,我们需要将 whatsapp 添加到 info.plist 中的 LSApplicationQueriesSchemes 键。 在此之后,它只对我有用。

解决方案的屏幕截图

斯威夫特 5

在 LSApplicationQuerySchemes(Info.plist) 中添加 whatsapp

代码

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")
             }
      }
}

我的代码看起来像这样

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")
        }

工作正常但是当我把这个网址

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

然后它不工作请检查Thanks.HelpWill Be Appriciated。

斯威夫特 5

请按照以下步骤通过 URL Schemes 在 WhatsApp 上共享

  1. 将此代码添加到您的应用程序“info.plist”中

 <key>LSApplicationQueriesSchemes</key> <array> <string>whatsapp</string> </array>

在此处输入图片说明

  1. 用于共享文本和 URL

代码

    @IBAction func whatsappShareText(_ sender: AnyObject) {

    
        let message = "First Whatsapp Share & https://www.google.co.in"
        var queryCharSet = NSCharacterSet.urlQueryAllowed
        
        // if your text message contains special characters like **+ and &** then add this line
        queryCharSet.remove(charactersIn: "+&")
        
        if let escapedString = message.addingPercentEncoding(withAllowedCharacters: queryCharSet) {
            if let whatsappURL = URL(string: "whatsapp://send?text=\(escapedString)") {
                if UIApplication.shared.canOpenURL(whatsappURL) {
                    UIApplication.shared.open(whatsappURL, options: [: ], completionHandler: nil)
                } else {
                    debugPrint("please install WhatsApp")
                }
            }
        }
    }

快乐编码!

根据他们的常见问题解答,您应该改用通用链接:

https://wa.me/1234567890

参考: https ://faq.whatsapp.com/563219570998715/?locale=en_US

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM