ios - 如何从我的应用程序中打开亚马逊应用程序?
问题描述
我正在尝试使用以下代码从我的应用程序中打开亚马逊应用程序:
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 方案添加到LSApplicationQueriesSchemes
in Info.plist
,但这并没有改变:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>amzn</string>
</array>
更奇怪的是,它甚至没有打开后备 URL - 我希望如果canOpen
失败,第二个分支会起作用。
解决方案
因此,经过更多研究,基于https://www.appsight.io,亚马逊应用似乎没有使用"amzn://"
url 方案,而是"amazonToAlipay://"
. 将其更改为此后,将UIApplication.shared
打开 Amazon 应用程序。
感谢@LinusGeffarth 和他对另一个相关问题的回答。
推荐阅读
- ios - CIKernel 的意外行为
- c# - Asp.NET C# MVC - 如何显示结果与多个表的查询
- python - python 3素数错误答案产生为什么这段代码给我错误的素数,如9,21,.......?
- sql - 无法确定连接查询
- python - MyPy 无法识别修饰函数的返回类型
- javascript - Javascript - 通过其名称和存储在变量中的参数调用函数,(理想情况下没有`eval`,但如果只有这样就可以了)
- python - Discord.py 如何让命令忽略参数
- java - 实现抽象类的类的类型与抽象类的泛型类型不兼容
- args - For循环不循环通过args
- python - 尝试与 JMP 中的 Python 脚本交互