首页 > 解决方案 > 如何从我的应用程序中打开亚马逊应用程序?

问题描述

我正在尝试使用以下代码从我的应用程序中打开亚马逊应用程序:

if let url = URL(string: "amzn://"),
    UIApplication.shared.canOpenURL(url) {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else if let url = URL(string: "https://www.amazon.com") {
    // fallback
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

当我将它用于 Youtube 应用程序时,这就像一个魅力。但是,现在使用 Amazon,它在报告此错误时只是默默地失败:

2018-10-11 10:38:09.794370+0200 App[9739:3023026]-canOpenURL:URL 失败:“amzn://”-错误:“操作无法完成。(OSStatus 错误 -10814。) "

我已将 url 方案添加到LSApplicationQueriesSchemesin Info.plist,但这并没有改变:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>amzn</string>
</array>

更奇怪的是,它甚至没有打开后备 URL - 我希望如果canOpen失败,第二个分支会起作用。

标签: iosswifturl-scheme

解决方案


因此,经过更多研究,基于https://www.appsight.io,亚马逊应用似乎没有使用"amzn://"url 方案,而是"amazonToAlipay://". 将其更改为此后,将UIApplication.shared打开 Amazon 应用程序。

感谢@LinusGeffarth 和对另一个相关问题的回答。


推荐阅读