我发现有两个选项可以从 Safari 网页打开我的应用程序: 在我的应用程序项目中创建的自定义 URL 方案Info.plist
或苹果的通用链接。显然,自定义 URL 方案是最容易设置的方案,但我遇到的问题是 Safari 会显示一个确认窗口,询问“打开myapp
?”首先,用户必须在应用程序实际打开之前点击“确定”。我希望我的应用程序在打开方案时自动打开,并且我被告知执行此操作的唯一方法是通过通用链接(如果这不是真的)。但是,如果这是真的,我想知道是否可以以任何方式将所需的apple-app-site-association
文件在一个http://
域而不是https://
?根据苹果官方文档,正确的通用链接的格式明确以https://
但我的域名无法加载https://
没有重定向几次,这会弄乱我编写的用于执行应用程序中其他任务的 Web 服务。这个问题之后我剩下的两个主要问题:
1) 是否真的不可能使用自定义 URL 方案来解决确认提示(myscheme://
)?如果不是不可能的话,我该怎么做呢?
2) 如果我必须使用Apple Universal Linking,我可以使用http://
领域?如果是这样,我该怎么做?现在,如果我加载通用链接,它只会显示其中的字典apple-app-site-association
文件,我很确定这不应该发生。我听说它应该发送一个NSUserActivity
反对我的应用程序委托。我怎样才能做到这一点http://
link?
如果不向用户显示警报,则无法触发自定义 URI 方案。这在 iOS 8 中曾经是可能的,但 iOS 9 开始显示所有应用程序的警报。 iOS 10.3 甚至将这一点扩展到了 App Store 本身。你无法绕过这个。创建通用链接是为了替换此行为的 URI 方案,因此您确实需要使用它们。
根据您的描述,我相信您可能误解了通用链接的工作原理。要回答您首先提出的字面问题,通用链接 URL 本身并不这样做not需要在https://
协议,是的,apple-app-site-association
must被送达https://
没有重定向。
However,听起来您正在尝试提供的内容apple-app-site-association
每个通用链接的文件。这不是正确的实现 - AASA 文件是托管的only at https://example.com/apple-app-site-association
,iOS 在安装应用程序时会自动检索它。之后,任何网址example.com
符合 AASA 文件中的条件的用户将有资格获得通用链接。
所有这一切都表明,你真的不想自己构建这个系统 https://hackernoon.com/the-death-of-deep-linking-6cc65eb33e28。我建议研究 Firebase Dynamic Links 或Branch.io https://branch.io(全面披露:我是 Branch 团队的成员)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)