我有一个支持通用链接的应用程序,它目前在应用商店中。
假设它支持域 www.example.com,因此可以通过它轻松打开通用链接。我们将在关联域中有 applinks:www.example.com。
现在说如果我想发布另一个应用程序,它也支持相同的域。现在 iOS 将如何区分通过通用链接打开哪个应用程序..?
我有一个支持通用链接的应用程序,它目前在应用商店中。
假设它支持域 www.example.com,因此可以通过它轻松打开通用链接。我们将在关联域中有 applinks:www.example.com。
现在说如果我想发布另一个应用程序,它也支持相同的域。现在 iOS 将如何区分通过通用链接打开哪个应用程序..?
为了在两个不同的应用程序上支持单个域,您需要在 https://{domain}/apple-app-site-associationUniversal Links
中对现有文件进行更改。apple-app-site-association
对于单个应用程序支持,它看起来像这样
{
"applinks": {
"apps": [],
"details": [
{
"appID": "1234ABCDE.com.domain.myapp",
"paths": ["*"]
}
]
}
}
details
对于多应用程序支持,您需要在 in数组中applinks
再添加一个键值对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": [ "*" ]
}
]
}
}
我找到了解决方案,虽然它很简单。我的问题是我的第一个应用程序通过声明来支持所有页面
“*”在 apple-app-site-association 文件的路径部分。现在我所要做的就是在我希望我的第二个应用程序处理的路径之一之前添加 NOT。
像“不是/出租车”。我还没有测试它是否有效。我将在完成后立即发布更新。
Apple App Site Association 文件示例
{
"applinks": {
"apps": [],
"details": [{
"appID": "D3KQX62K1A.com.example.photoapp",
"paths": ["/albums"]
},
{
"appID": "D3KQX62K1A.com.example.videoapp",
"paths": ["/videos"]
}]
}
}
重要提示:数组中字典的顺序决定了系统在查找匹配项时遵循的顺序。第一场比赛获胜,允许您指定一个应用程序来处理您网站中的指定路径,并指定另一个应用程序来处理其余的。