无确认提示(SWIFT)的自定义URL方案



我找到了两个选项,可以从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(完全披露:我在分支机构团队(。

  1. 使用自定义URL方案(Myscheme://(围绕确认提示进行工作真的不可能吗?如果不是不可能,我该怎么做?

可能的具有一些骇人听闻的技巧和不良的用户体验。它要求用户按"添加到主屏幕"。按钮,所以我不建议在大多数情况下使用此解决方案。

  1. 设置您的应用程序计划,例如myapp

  2. 创建以下HTML文件并将其放入Web

    window.onload = function(({ if((window.navigator中的" standal"(&& window.navigator.standalone({ window.location.href ='myApp://open' } }
  3. 使用Safari打开HTML文件,并"添加到主屏幕"

  4. 打开主屏幕图标,您的本机应用将启动

重点是元标记。

<meta name="apple-mobile-web-app-capable" content="yes" />

没有此功能,Safari将启动,确认提示将出现。

最新更新