【发布时间】:2016-02-08 13:37:11
【问题描述】:
我有一个支持通用链接的应用程序,它目前在应用商店中。
假设它支持域 www.example.com,因此可以通过它轻松打开通用链接。我们将在关联域中有 applinks:www.example.com。
现在说如果我想发布另一个应用程序,它也支持相同的域。现在 iOS 将如何区分通过通用链接打开哪个应用程序..?
【问题讨论】:
标签: ios iphone branch.io ios-universal-links
我有一个支持通用链接的应用程序,它目前在应用商店中。
假设它支持域 www.example.com,因此可以通过它轻松打开通用链接。我们将在关联域中有 applinks:www.example.com。
现在说如果我想发布另一个应用程序,它也支持相同的域。现在 iOS 将如何区分通过通用链接打开哪个应用程序..?
【问题讨论】:
标签: ios iphone branch.io ios-universal-links
为了在两个不同的应用上支持 Universal Links 的单个域,您需要更改现有的 apple-app-site-association 文件,位于 https://{domain}/apple-app-site-association。
对于单个应用程序支持,它看起来像这样
{
"applinks": {
"apps": [],
"details": [
{
"appID": "1234ABCDE.com.domain.myapp",
"paths": ["*"]
}
]
}
}
为了支持多应用程序,您需要在applinks 的details 数组中添加一个键值对apple-app-site-association。是这样的
{
"applinks": {
"apps": [],
"details": [
{
"appID": "1234ABCDE.com.domain.myApp",
"paths": ["*"]
},
{
"appID": "1234ABCDE.com.domain.mySecondApp",
"paths": ["*"]
},
{
"appID": "1234ABCDE.com.domain.myThirdApp",
"paths": ["*"]
}
]
}
}
apple-app-site-association 文件的一般格式文件如下所示:
{
"applinks": {
"apps": [ ],
"details": [
{
"appID": "{app_prefix}.{app_identifier}",
"paths": [ "/path/to/content", "/path/to/other/*", "NOT /path/to/exclude" ]
},
{
"appID": "TeamID.BundleID2",
"paths": [ "*" ]
}
]
}
}
How to support Universal Links in iOS App and setup server for it?
【讨论】:
我找到了解决方案,不过它非常简单。 我的问题是我的第一个应用程序通过声明来支持所有页面
“*”在 apple-app-site-association 文件的路径部分。现在我所要做的就是在我希望我的第二个应用程序处理的路径之一之前添加 NOT。
喜欢“不 /cabs”。我还没有测试它是否有效。我会在完成后立即发布更新。
【讨论】:
Apple App Site Association 文件示例
{
"applinks": {
"apps": [],
"details": [{
"appID": "D3KQX62K1A.com.example.photoapp",
"paths": ["/albums"]
},
{
"appID": "D3KQX62K1A.com.example.videoapp",
"paths": ["/videos"]
}]
}
}
重要提示:数组中字典的顺序决定了系统在查找匹配项时遵循的顺序。第一场比赛获胜,允许您指定一个应用程序处理您网站中的指定路径,并指定另一个应用程序处理其余部分。
【讨论】: