首页 > 解决方案 > 在使用 Bundle Identifier 轻按的按钮上打开应用程序(无 url 方案)

问题描述

我目前正在开发一个应用程序,我正在尝试添加一个按钮,当点击该按钮时,该按钮将打开我手机上安装的另一个应用程序

我已尝试查找应用程序的 URL 方案,但找不到。我唯一能找到的是捆绑ID。所以我想也许有一种方法可以使用捆绑 ID 通过 Swift 中的私有 API 打开应用程序?如果有帮助,我的手机已经越狱了。下面是我的代码

    @IBAction func openAppTapped(_ sender: Any) {
        UIApplication.shared.openURL(NSURL(string: "itms-apps://itunes.apple.com/us/app/apspace/id1413678891?mt=8")! as URL)      

    }

点击按钮后,我设法打开了应用商店上的应用程序,但我想要一种方法来直接打开应用程序,而不使用 url 方案,而是使用捆绑 ID 和/或私有 API。任何帮助将不胜感激!

标签: iosswiftapi

解决方案


要打开另一个应用程序,您要么必须使用该应用程序提供的某种扩展,要么找出它们的 URL 方案并对其进行逆向工程。

您可以尝试的第一件事是查看应用程序的 Info.plist 并查看他们是否为他们的应用程序定义了 URLScheme。如果没有,而且他们还没有实现扩展,那么我认为你是 SOL。

如果他们确实定义了它,请尝试使用它来打开他们的应用程序并查看会发生什么,他们可能有一些代码会根据他们的方案之后的 URL 格式拒绝或接受打开他们的应用程序的请求。如果您无法通过反复试验来解决问题,您可以利用您的手机已越狱这一事实来反编译他们的应用程序并寻找可能在他们的 AppDelegate 中的 URL 解析逻辑。从那里您可以尝试构建一个 URL,您可以使用该 URL 每次成功打开他们的应用程序。


推荐阅读