iOS - 自己的 URL Scheme 并测试它

标签 ios url-scheme

我的目标是测试是否在 中安装了应用程序未越狱设备。

首先,我尝试了自己制作的两个应用程序。

测试应用 是我要检查的应用程序,是否已安装。

查询应用 是提供支票的应用程序。

如果我理解的话,围绕我的目标的基本想法是利用 TestApp 个人 URL 方案。

所以,通过 Xcode,我修改了 TestApp Info.plist enter image description here

然后我安装了TestApp

现在,在 CheckApp 我写了一个简单的方法

func isOpen(_ sender: Any) {

    let appScheme = "testapp://"
        let appUrl = URL(string: appScheme)

        if UIApplication.shared.canOpenURL(appUrl! as URL)
        {
            print("App is installed")

        } else {
            print("App not installed")
        }

}

但如果我调用它,控制台会说我
[17596:13050537] -canOpenURL: failed for URL: "testapp://" - error: "This app is not allowed to query for scheme installpatch" App not installed
我已经使用像 mailto 这样的 URL 方案测试了该方法。没关系。

我哪里错了?

最佳答案

您可能需要将以下 key 添加到您的 Info.plist文件在您的查询应用 与您想要的 URL 方案列表 -canOpenURL(_:)在一天结束的时候。

LSApplicationQueriesSchemes

这就是它在 Xcode 中的一般外观:

general list of schemes

您需要确保您的方案在此列表中,例如 "testapp"根据您的 OP。

注意:您可以在 Apple's site 上阅读有关该 key 的更多信息.

关于iOS - 自己的 URL Scheme 并测试它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46935179/

相关文章:

ios - AppDelegate中Viewcontroller的访问变量

ios - "fb://"url 方案 - 官方或非官方?

html - 如何在 iOS 上使用 tel : with * (star, asterisk) 或 # (hash, pound)?

JavaScript/Safari 扩展程序检查应用程序可用性

ios - Launchurl 在 IOS 应用程序中处理了两次

ios - Swift 动态转换异常

IOS 显示应用程序在电池耗尽后在后台运行

ios - 用于 iOS 开发的 Qt : File read and write

ios - SWIFTUI 在 TabView 中隐藏当前 View 的 navigationBarBackButton

ios - 在电子邮件中发送 URL 方案