如何防止ios universal link 当用户点击子域A页面中的url时打开APP,并且url正在linking到子域B
how to prevent ios universal link open the APP when user click a url in subdomain A page, and the url is linking to subdomain B
我们在 ios APP 中添加了关联域,如下所示:
<string>webcredentials:*.mywebsite.com</string>
<string>applinks:*.mywebsite.com</string>
我们还为所有子域上传了 apple-app-site-association 文件。如下所示:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "XXXXX.com.mywebsite.www",
"paths": [
"NOT /whatever",
"some other paths here",
"/"
]
}
]
},
"webcredentials": {
"apps": [
"XXXXX.com.mywebsite.www"
]
}
}
如果用户在 google 到 www.mywebsite.com 的 google 页面上单击 url,它会正常打开应用程序。
但我的问题是,如果我们有一个 subdomainA.mywebsite.com/test.html,像这样:
<a href="https://www.mywebsite.com/">HOME</a>
如果用户点击link,它也会打开APP,这不是我想要的。
所以我的问题是,如果在子域 A 上用户单击 link 到子域 B 的 url,并且 url 的路径已在应用站点关联文件中注册。 ios能知道它们只是子域所以不打开APP吗?
您可以通过将 AASA 文件中的路径列入黑名单来禁用通用链接。
在您的 AASA 文件中的路径前添加 NOT 不会触发您的 url.
的应用程序打开
{
"applinks": {
"apps": [ ],
"details": [
{
"appID": "XXXXX.com.mywebsite.www",
"paths": [ "http://www.mywebsite.com/", "NOT http://www.subdomainA.mywebsite.com/test.html"]
}
]
}
}
这是相同的苹果文档:
Universal Links
我们最终向 Apple 寻求帮助。如我所料,我们不能告诉 Apple/IOS 不要在具有相同通用 link 的两个子域之间启动 APP。我们唯一能做的就是,如果在子域 B 中有一个 url link 到子域 A,并且这个 url 是通用的 link,我们必须添加一些特殊的查询或哈希到url,例如url?within_subdomains=1,然后在AASA文件中,我们添加“NOT *within_subdomains=1”,
我们在 ios APP 中添加了关联域,如下所示:
<string>webcredentials:*.mywebsite.com</string>
<string>applinks:*.mywebsite.com</string>
我们还为所有子域上传了 apple-app-site-association 文件。如下所示:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "XXXXX.com.mywebsite.www",
"paths": [
"NOT /whatever",
"some other paths here",
"/"
]
}
]
},
"webcredentials": {
"apps": [
"XXXXX.com.mywebsite.www"
]
}
}
如果用户在 google 到 www.mywebsite.com 的 google 页面上单击 url,它会正常打开应用程序。
但我的问题是,如果我们有一个 subdomainA.mywebsite.com/test.html,像这样:
<a href="https://www.mywebsite.com/">HOME</a>
如果用户点击link,它也会打开APP,这不是我想要的。
所以我的问题是,如果在子域 A 上用户单击 link 到子域 B 的 url,并且 url 的路径已在应用站点关联文件中注册。 ios能知道它们只是子域所以不打开APP吗?
您可以通过将 AASA 文件中的路径列入黑名单来禁用通用链接。 在您的 AASA 文件中的路径前添加 NOT 不会触发您的 url.
的应用程序打开{
"applinks": {
"apps": [ ],
"details": [
{
"appID": "XXXXX.com.mywebsite.www",
"paths": [ "http://www.mywebsite.com/", "NOT http://www.subdomainA.mywebsite.com/test.html"]
}
]
}
}
这是相同的苹果文档: Universal Links
我们最终向 Apple 寻求帮助。如我所料,我们不能告诉 Apple/IOS 不要在具有相同通用 link 的两个子域之间启动 APP。我们唯一能做的就是,如果在子域 B 中有一个 url link 到子域 A,并且这个 url 是通用的 link,我们必须添加一些特殊的查询或哈希到url,例如url?within_subdomains=1,然后在AASA文件中,我们添加“NOT *within_subdomains=1”,