我找到了两个从Safari网页打开我的应用程序的选项:在我的应用程序项目的Info.plist
或Apple的Universal Linking中创建的自定义URL方案。显然,自定义URL方案是最容易设置的方案,但我遇到的问题是Safari会显示一个确认窗口,询问“打开myapp
”。首先,用户必须在应用实际打开之前点击确定。我希望我的应用程序在打开方案时自动打开,我被告知唯一的方法是通过Universal Linking(如果不是这样,请纠正我)。但是,如果这是真的,我想知道是否可以以任何方式将所需的apple-app-site-association
文件放在http://
域而不是https://
上?根据官方Apple文档,正确的通用链接的格式明确地以https://
开始,但我的域名无法在https://
上加载而不重定向几次,这会混淆我的网络服务写在我的应用程序中执行其他任务。这个问题之后我留下的两个主要问题是:
1)使用自定义URL方案(myscheme://
)是否真的无法解决确认提示?如果不是不可能,我该怎么做?
2)如果我必须使用Apple Universal Linking,我可以使用http://
域吗?如果是这样,我该怎么办?现在,如果我加载通用链接,它只显示apple-app-site-association
文件中的字典,我很确定不应该发生。我被告知它应该向我的应用代表发送一个NSUserActivity
对象。如何使用http://
链接完成此操作?
答案 0 :(得分:6)
如果不向用户显示警报,则无法触发自定义URI方案。过去在iOS 8中可以使用,但iOS 9开始显示所有应用程序的警报。 iOS 10.3甚至已经扩展到App Store本身。 您无法绕过此。创建通用链接以替换此行为的URI方案,因此您确实需要使用它们。
从您的描述中,我相信您可能会产生误解Universal Links如何运作。要回答您首先询问的文字问题,没有通用链接网址本身 不需要apply plugin: 'realm-android'
协议,是的,https://
必须< / em>在没有重定向的情况下通过apple-app-site-association
投放。
但是,听起来您正试图提供https://
的内容每个通用链接的文件。这不是正确的实现--AASA文件仅在apple-app-site-association
托管 ,iOS会在安装应用程序时自动检索它。之后,https://example.com/apple-app-site-association
上符合AASA文件条件的任何网址都有资格使用通用链接。
所有这些都说Destructuring assignment。我建议查看Firebase动态链接或you really don't want to built out this system on your own(完全披露:我在分支团队中)。
答案 1 :(得分:1)
1)真的不可能使用自定义URL方案(myscheme://)解决确认提示吗?如果不是不可能,我该怎么办?
那是可能。
1)将您的应用方案设置为"This is an example of big letter AAAAAAAAAAAAAAAAACCCCCCCCCCCCCCC failing the wrap "
2)创建以下html文件并将其放到网络中
myapp
3)使用safari打开html文件,然后“添加到主屏幕”
4)打开主屏幕图标,您的本机应用程序将启动
重点是元标记。
<html>
<head>
<link rel="apple-touch-icon" href="https://myapp.com/path/to/shortcut-icon.png" />
<meta name="apple-mobile-web-app-capable" content="yes" />
</head>
<script>
window.onload = function() {
if (("standalone" in window.navigator) && window.navigator.standalone) {
window.location.href = 'myapp://open'
}
}
</script>
</html>
否则,将启动safari,并出现确认提示。