13

我在我的 iOS 应用程序中添加了通用链接

messages http://somesite.com/message/list/ >> opens the app to messages 
review   http://somesite.com/review/add/   >> opens the app to review 
place    http://somesite.com/place/add/    >> opens the app to place 
photo    http://somesite.com/photo/add/    >> opens the app to photo

一切都按预期工作,我的问题是:如何排除路径或网址,甚至永远不会打开应用程序?

例如

somepage   http://somesite.com/somepagelink   >> SHOULDN'T OPEN APP, it must show up in the browser.

苹果应用网站关联文件

{
    "applinks": 
    {
        "details": [
        {
            "paths": ["*", "NOT /somepagelink/*"],
            "appID": "ID1.myApp"
        }, 
        {
            "paths": ["*", "NOT /somepagelink/*"],
            "appID": "ID2.myApp"
        }],
        "apps": []
    },
    "activitycontinuation": 
    {
        "apps": ["ID1.myApp","ID2.myApp"]
    }
}

这是排除路径的正确方法吗?

"NOT /somepagelink/*"
4

1 回答 1

28

是的,您的语法是正确的,但是:

Apple 文档指出,语句的顺序很重要。

因为系统会按照指定的顺序评估路径数组中的每个路径——并在找到正匹配或负匹配时停止评估——所以您应该在低优先级路径之前指定高优先级路径。

它在您的文件中评估的第一条语句是星号“*”,表示“是的,每个 URL 都是允许的”。然后它将结束并打开应用程序。

所以也许换个方式试试?

"paths": ["NOT /somepagelink/*", "*"],

编辑

重要提示:这来自下面给出的评论,除了 AASA 的变化。对于 apple-app-site-association 文件的每次更改,您都必须重新安装该应用程序。如果您使用其中之一,那肯定是 CDN 问题

于 2017-04-25T12:21:58.357 回答