在通用链接 iOS 中排除 url

exclude a url in universal links iOS

我已经实现了通用链接并且工作正常,但现在我需要从打开的应用程序中排除一些 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/"] - 将忽略所有 url,不会重定向到移动应用程序

{
    "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,允许 /test_url_2/ 并忽略其他 urls

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

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

我只需要忽略 test_url_1 和 test_url_2 并为其他 url 打开移动应用程序。有没有办法做到这一点?我在这里遗漏了什么吗?

你必须通过将你的每个 url 转换为字符串来检查它,并寻找你不想在你的新 url 路径中的你

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
}

对于 url 的大列表,您必须在 for 循环中进行此测试并生成您想要的 url

你的第三个例子应该是正确的,并且符合我之前在工作实践中看到的规范和例子。我们可能需要查看非匿名数据和实际链接才能进一步调试。

你也可以试试这个:

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