否,目前不支持 #(inline-links) 和 ?(query-parmeter) Universal Links
。Apple 没有提供任何格式来支持Inline-Links
& Query-Parmeter
in apple-app-site-association
file。
为了对https://www.mywebsite.com?parameter=something进行索引,我使用了以下 JSON 文件。
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.BUNDLEID",
"paths":[ "*" ]
}
]
}
}
例如,如果您只想将索引限制为某个参数query_parmeter1
,query_parmeter2
那么您需要在 UIApplicationDelegate 方法中处理这个问题,[UIApplicationDelegate application: continueUserActivity: restorationHandler:]
如下所示
目标-C:
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
if ([userActivity.activityType isEqualToString: NSUserActivityTypeBrowsingWeb]) {
NSURL *url = userActivity.webpageURL;
if ([url.query containsString:@"query_parmeter1"]) {
//handle code for query_parmeter1
}else if ([url.query containsString:@"query_parmeter2"]){
//handle code for query_parmeter2
}
return YES;
}
return NO;
}
迅速:
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
let query = url.query ?? ""
if query.contains("query_parmeter1") {
// handle code for query_parmeter1
} else if query.contains("query_parmeter2") {
// handle code for query_parmeter2
}
return true
}
return false
}
注意:当点击网站链接时,此技巧不会阻止应用程序打开。但是您可以检查 URL 是否满足您的要求,如果没有,您可以再次在 Web 浏览器中打开您的 URL。类似于 亚马逊应用 -
参考 -处理通用链接中的查询参数