在通用链接iOS中排除网址

时间:2017-04-07 10:40:59

标签: ios ios-universal-links

我已经实现了通用链接并且工作正常但是现在我需要从打开应用程序中排除几个url类型,所以我尝试使用apple-app-site-association文件。

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "abc",
            "paths": ["NOT /test_url_1/", "NOT /test_url_2/"]
        }]
    }
}

"paths":["NOT /test_url_1/", "NOT /test_url_2/"] - 将忽略所有网址,不会重定向到移动应用

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "abc",
            "paths": ["NOT /test_url_1/", "/test_url_2/"]
        }]
    }
}

"paths":["NOT /test_url_1/", "/test_url_2/"] - 将忽略/ test_url_1 / url,allow / test_url_2 /并忽略其他网址

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "abc",
            "paths": ["NOT /test_url_1/", "NOT /test_url_2/", "*"]
        }]
    }
}

"paths":["NOT /test_url_1/", "NOT /test_url_2/", "*"] - 将在移动应用中打开所有网址

我只需要忽略test_url_1和test_url_2并打开其他网址的移动应用。反正有没有这样做?我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:1)

您必须通过将每个网址投射到字符串来查看它,并查找您不希望进入新网址路径的内容

let url = URL(string: "/test_url_1/somepoints/")!
let urlString = url.absoluteString
var newURL:URL!

if !urlString.contains("test_url") {
   newURL = URL(string: urlString)
  // use the new url now
}

要获取大量网址,您必须在for循环中进行此测试并生成所需的网址

答案 1 :(得分:1)

您的第三个示例应该是正确的,并且与我之前在工作实践中看到的规范和示例相匹配。我们可能需要查看非匿名数据和实际链接以进一步调试。

你也可以试试这个:

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "abc",
            "paths": ["NOT /test_url_1/*", "NOT /test_url_2/*", "*", "/"]
        }]
    }
}