在支持通用链接的两个不同应用程序上支持同一个域..?

Supporting same domain on two different apps supporting universal links..?

我有一个支持通用链接的应用程序,它目前在应用程序商店中。

说它支持域www.example.com,因此可以通过它轻松打开通用链接。我们将在关联域中有 applinks:www.example.com。

现在说如果我想发布另一个应用程序并且它也支持相同的域。现在 iOS 如何区分通过通用链接打开哪个应用程序..?

我找到了解决方案,虽然很简单。 我的问题是我的第一个应用程序通过声明

来支持所有页面

“*”在 apple-app-site-association 文件的路径部分。现在我所要做的就是在我希望我的第二个应用程序处理的路径之一前面添加 NOT 。

喜欢"NOT /cabs"。我还没有测试过它是否有效。完成后我会post更新。

为了支持 Universal Links 在两个不同的应用程序上使用单一域,您需要更改现有的 apple-app-site-association 文件,网址为 https://{domain}/apple-app-site -协会。

对于单个应用支持

对于单个应用程序支持,它看起来像这样

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "1234ABCDE.com.domain.myapp",
                "paths": ["*"]
            }
        ]
    }
}

多应用支持

为了支持多应用,需要在apple-app-site-association中的applinks数组的details数组中增加一对键值对。看起来像这样

{
    "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 站点关联文件示例

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "D3KQX62K1A.com.example.photoapp",
            "paths": ["/albums"]
            },
            {
            "appID": "D3KQX62K1A.com.example.videoapp",
            "paths": ["/videos"]
        }]
    }
}

重要提示:字典在数组中的顺序决定了系统在查找匹配项时遵循的顺序。第一场比赛获胜,允许您指定一个应用程序处理您网站内的指定路径,并指定另一个应用程序处理其余部分。

参考文献: https://developer.apple.com/documentation/uikit/core_app/allowing_apps_and_websites_to_link_to_your_content/enabling_universal_links