作者:xiaodanzhang | 来源:互联网 | 2023-02-06 10:34
我找到了两个从Safari网页打开我的应用程序的选项:在我的应用程序项目Info.plist
或Apple的Universal Linking中创建的自定义URL方案.显然,自定义URL方案是最容易设置的方案,但我遇到的问题是Safari显示一个确认窗口,询问"打开myapp
?" 首先,用户必须在应用实际打开之前点击确定.我希望我的应用程序在打开方案时自动打开,我被告知唯一的方法是通过Universal Linking(如果不是这样,请纠正我).但是,如果这是真的,我想知道是否有可能以任何方式将所需apple-app-site-association
文件放在http://
域而不是https://
?根据官方的Apple文档,正确的通用链接的格式明确地开始,https://
但是https://
如果没有重定向几次就无法加载我的域名,这会混淆我为在应用程序中执行其他任务而编写的Web服务.这个问题之后我留下的两个主要问题:
1)使用自定义URL方案(myscheme://
)来解决确认提示是否真的不可能?如果不是不可能,我该怎么做?
2)如果我必须使用Apple Universal Linking,我可以使用http://
域吗?如果是这样,我该怎么办?现在,如果我加载通用链接,它只显示apple-app-site-association
文件中的字典,我很确定不应该发生.我被告知它应该NSUserActivity
向我的应用代表发送一个对象.如何通过http://
链接完成此操作?
1> Alex Bauer..:
如果不向用户显示警报,则无法触发自定义URI方案.过去在iOS 8中可以使用,但iOS 9开始显示所有应用程序的警报.iOS 10.3甚至已经扩展到App Store本身.你不能绕过这个.创建通用链接以替换此行为的URI方案,因此您确实需要使用它们.
根据您的描述,我相信您可能会误解Universal Links的工作方式.要回答你问的第一个问题字面,没有通用链接网址本身并不需要是对https://
协议,是的,apple-app-site-association
必须送达了https://
无重定向.
但是,听起来您正试图apple-app-site-association
为每个Universal Link提供文件内容.这是不正确的实现-在AASA托管文件只在https://example.com/apple-app-site-association
,并在安装应用程序时的iOS自动检索它.之后,任何example.com
与AASA文件中的条件匹配的URL 都有资格使用Universal Links.
所有这些都说,你真的不想自己构建这个系统.我建议查看Firebase动态链接或Branch.io(完全披露:我在分支团队中).
我试图让这项工作起作用的全部原因是因为我正在实施支付SDK,而且SDK明确告诉我不要在网络视图中处理付款,因为它不起作用.即使那个SDK没有告诉我,我仍然知道它不会起作用,因为我有足够的经验来支付我的iPhone和我用过的每个支付应用程序总是打开Safari来验证付款.这也是有原因的.