在苹果应用程序站点关联文件中,为什么“不”不排除提到的路径?

问题描述 投票:7回答:1

我已在我的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

都按预期工作,我的问题是:如何以甚至从未打开应用程序的方式排除路径或URL?

例如

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/*"
ios xcode7 ios-universal-links apple-app-site-associate
1个回答
14
投票

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

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

由于系统按照指定的顺序评估path数组中的每个路径,并在找到正负匹配时停止评估,因此应在低优先级路径之前指定高优先级路径。

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

所以也许可以反过来尝试?

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

编辑

重要:除AASA的更改外,这来自以下给出的评论。您必须为apple-app-site-association文件的每次更改重新安装应用程序。如果您使用其中之一,则肯定是CDN问题

© www.soinside.com 2019 - 2024. All rights reserved.