iOS通用链接:如何从网址中排除某些路径?

时间:2015-10-01 09:33:28

标签: ios ios9 ios-universal-links

我正在使用iOS的新通用链接功能,但是想要禁用该主题的某些路径。

例如:应在我的应用中打开包含“_id_”的所有网址以及来自网域http://example.com/testsitehttp://example.com的起始网页。我该如何解决这个问题?

服务器上的我的apple-app-site-association文件如下所示:

{
"activitycontinuation": {
    "apps": [
        "ABCDEFGHIJ.com.example.ios"
    ]
},
"applinks": {
    "apps": [],
    "details": [
        {
            "appID": "ABCDEFGHIJ.com.example.ios",
            "paths": [
                "/",
                "*_id_*"
            ]
        }
    ]
}
}

我在应用中的权利文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"     "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>activitycontinuation:example.com</string>
        <string>activitycontinuation:www.example.com</string>
        <string>activitycontinuation:m.example.com</string>
        <string>applinks:example.com</string>
        <string>applinks:www.example.com</string>
        <string>applinks:m.example.com</string>
    </array>
</dict>
</plist>

我没有找到任何排除某些路径的选项。这怎么可行?

1 个答案:

答案 0 :(得分:3)

NOT 前面添加路径,以排除该路径的匹配。示例 -

{
"applinks": {
    "apps": [ ],
    "details": [
        {
            "appID": "{app_prefix}.{app_identifier}",
            "paths": [ "NOT /path/to/exclude"]
        }
    ]
}
}

有三种方法可以定义路径:

Static:整个支持的路径都经过硬编码,以识别特定的链接,例如: /静态/项
Wildcards:A *可用于匹配动态路径,例如/ books / *可以匹配任何作者页面的路径。 ?特定路径组件内部,例如,书籍/ 1?可用于匹配ID以1开头的任何书籍 Exclusions:在NOT前面添加路径会排除该路径的匹配。

数组中提到路径的顺序很重要。早期指数具有更高的优先级。路径匹配后,评估将停止,其他路径将被忽略。每条路径都区分大小写。

参考

How to support Universal Links in iOS App and setup server for it?