我找到了两个选项,可以从Safari网页打开我的应用程序:在我的应用程序的Info.plist
或Apple的通用链接中创建的自定义URL方案。显然,自定义URL方案是最简单的设置,但是我对此遇到的问题是Safari显示了一个确认窗口,询问"打开myapp
?"首先,在应用程序实际打开之前,用户必须点击确定。我希望我的应用程序在打开方案时自动打开,并且有人告诉我唯一的方法是通过通用链接(如果这不是真的,请纠正我(。但是,如果这是真的,我想知道是否可以将所需的apple-app-site-association
文件放在http://
域而不是https://
上?根据官方的Apple文档,正确的通用链接的格式从https://
明确启动,但是我的域名不能在https://
上加载,而又不会重定向几次,这弄乱了我写的Web服务,我写了为执行App中的其他任务。在此问题之后,我留下的两个主要问题:
1(使用自定义URL方案(myscheme://
(围绕确认提示进行工作真的不可能吗?如果不是不可能的,我该怎么做?
2(如果我必须使用Apple Universal链接,我可以使用http://
域吗?如果是这样,我该怎么办?现在,如果我加载了通用链接,它将仅显示apple-app-site-association
文件中的字典,我敢肯定不应该发生。有人告诉我应该将NSUserActivity
对象发送给我的应用程序委托。如何使用http://
链接来实现此操作?
不可能在不向用户显示警报的情况下触发自定义URI方案。曾经在iOS 8中进行了可能的可能性,但是iOS 9开始显示所有应用程序的警报。iOS 10.3甚至将其扩展到了App Store本身。您无法绕过此。创建了通用链接以替换此行为的URI方案,因此您确实需要使用它们。
从您的描述中,我相信您可能会误解通用链接的工作原理。要回答您首先提出的字面问题,否通用链接URL本身确实需要在https://
协议上,是的,是的,apple-app-site-association
必须通过https://
提供重定向。
但是,,听起来您正在尝试为每个通用链接提供apple-app-site-association
文件的内容。这不是正确的实现 - AASA文件仅在https://example.com/apple-app-site-association
托管,并且在安装应用程序时会自动检索它。之后,与AASA文件中标准匹配的example.com
上的任何URL都符合通用链接。
所有话都说,您真的不想自己构建此系统。我建议您查看Firebase Dynamic Links或Branch.io(完全披露:我在分支机构团队(。
- 使用自定义URL方案(Myscheme://(围绕确认提示进行工作真的不可能吗?如果不是不可能,我该怎么做?
即可能的具有一些骇人听闻的技巧和不良的用户体验。它要求用户按"添加到主屏幕"。按钮,所以我不建议在大多数情况下使用此解决方案。
-
设置您的应用程序计划,例如
myapp
-
创建以下HTML文件并将其放入Web
window.onload = function(({ if((window.navigator中的" standal"(&& window.navigator.standalone({ window.location.href ='myApp://open' } } -
使用Safari打开HTML文件,并"添加到主屏幕"
-
打开主屏幕图标,您的本机应用将启动
重点是元标记。
<meta name="apple-mobile-web-app-capable" content="yes" />
没有此功能,Safari将启动,确认提示将出现。