我正在尝试在我正在构建的移动应用程序中建立通用链接。我试图在我的网站上匹配的路径是www.mywebsite.com/route?query=xxx
苹果文档中有一个示例apple-app-site-association文件,如下所示。
{
"applinks": {
"apps": [],
"details": [
{
"appID": "9JA89QQLNQ.com.apple.wwdc",
"paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
},
{
"appID": "ABCD1234.com.apple.wwdc",
"paths": [ "*" ]
}
]
}
}但此示例没有带有查询字符串的路径示例。
如何在我的苹果应用站点关联文件中匹配我的路由www.mywebsite.com/route?query=xxx?
谢谢
发布于 2021-08-17 06:36:24
正如这段视频中提到的,我们现在可以使用components数组并在iOS 13和更高版本中处理这种通用链接:
从今年开始,我们将用
paths密钥替换components密钥。该键的值是一个字典数组,每个字典都包含要匹配模式的零个或多个URL组件。和前面一样,您可以匹配URL的path组件,该组件的键是正斜杠。如果您需要支持以前的版本,您可以保留路径键。如果存在组件键,iOS 13、tvOS 13和macOS 10.15将忽略它。和现在您可以匹配URL的片段组件,其键是散列标记,也可以匹配关键字为问号的查询组件。现在很多,如果不是的话,大多数URL都将它们的查询组件划分为名为查询项的键值对。对于查询组件,可以指定字典而不是字符串作为其值,并且模式匹配单个查询项。URL可能重复查询项名称,操作系统将要求给定查询项名的所有实例与您的模式匹配。
示例:
"components": [
{
"/": "/help/*",
"?": { "articleNumber": "????", "articleName": "?*" },
"comment": "Matches any URL whose path starts with /help/ and which has a query item with name 'articleNumber' and a value of exactly 4 characters, and another with name 'articleName' and a value of one or more characters"
}
]操作系统将没有值和缺少查询项的查询项视为具有等于空字符串的值。要使组件字典匹配候选URL,所有指定的组件都必须匹配。如果不指定组件,操作系统的默认行为就是忽略该组件。因此,例如,如果应用程序不关心URL的片段组件,则不需要在这个文件中指定它。您可能有您的网站的部分无法在您的应用程序中表示。您可以通过指定布尔值为true的排除键来排除这些子节。此键具有与在旧路径键中使用的not关键字相同的行为。在使用组件的字典时不支持该关键字。
发布于 2020-07-03 08:20:16
我有同样的问题,我能够找到苹果自己关于查询字符串的信息,见下文。
Note 用于在路径数组中指定网站路径的字符串是区分大小写的.只使用URL的路径组件进行比较。其他组件(如查询字符串或片段标识符)将被忽略。
因此,简而言之,在“路由”之后,他们会忽略您链接中的任何内容,您只需使用/route作为路径。
我引用的全文可以找到这里。
https://stackoverflow.com/questions/60937903
复制相似问题