ios - Whatsapp 打开 url 代码打开 Boltt Health App 而不是 ios 中的 whatsapp

标签 ios swift whatsapp openurl

我面临一个非常有趣的问题。我已经编写了从我的应用程序打开 WhatsApp 的代码(如下所示)。当设备中未安装 whatsapp 时,我还处理了向用户显示 toast 消息的问题。此代码运行良好,但如果设备安装了 Boltt Health App ( https://itunes.apple.com/in/app/boltt-health-fitness-anytime/id1244375641?mt=8 ) 并且没有 Whatsapp,那么它不会显示“请从 App Store 安装 whatsapp”消息,而是打开 Boltt Health App

** 注意如果设备中没有 Boltt 应用程序,一切正常

我打开whatsapp的代码

let urlWhats = "whatsapp://send?phone=\(mobileNo)&text=\(msg)"

    if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) {
        if let whatsappURL = NSURL(string: urlString) {
            if UIApplication.shared.canOpenURL(whatsappURL as URL) {
                if #available(iOS 10.0, *) {
                    UIApplication.shared.open(whatsappURL as URL, options: [ : ],  completionHandler: nil)
                } else {
                    UIApplication.shared.openURL(whatsappURL as URL)
                }
            } else {
                CommonMethods.showToast(messsage: "Please install whatsapp from App Store", view: view)
            }
        }
    }

这是一个非常奇怪的问题,将不胜感激任何建议。 提前致谢

最佳答案

我从这个应用程序中提取了 Info.plist。出于某种原因,它同时注册了 whatsapp URL 方案和一个 facebook URL 方案:

enter image description here

我不知道为什么这个应用会这样做,而且它可能不应该这样做。

我不确定你能做些什么; Apple 未注册或保护 URL 方案。您可以尝试联系应用程序开发人员并询问他们为什么要注册这些 URL 方案。也许这是一个错误。

我注意到该应用在其 LSApplicationQueriesSchemes 中确实包含了 WhatsApp 和 FaceBook,所以他们可能不小心将它们包含在 URL 类型键中而忘记删除它们。

关于ios - Whatsapp 打开 url 代码打开 Boltt Health App 而不是 ios 中的 whatsapp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55235176/

相关文章:

ios - 如何使用 Swift 4 和 Alamofire 从 API 获取数据

ios - 为注释添加标题

android - 适用于 Android 和 iOS 的 Unity3D : QR-Code Decoding (Reader)

ios - 如何使用 Swift 将图像上传到 iOS 中的服务器?

ios - 快速自定义 uitextviewcell 标签始终为零

swift - DispatchQueue.main.async 外的变量为空

facebook - whatsapp 消息传递如何像 facebook 开放图形协议(protocol)一样读取网站 url?

android - 如何让我的应用程序出现在 Whatsapp 画廊 ShareIntent Provider 中

javascript - 检测是否安装了 WhatsApp

iphone - 将谷歌分析与 ios 集成时出错?