我已经尝试了一段时间才能获得 iOS10 的通用链接,但它到目前为止还没有工作。
我配置了一个apple-app-site-association。 尝试在同一台服务器或其他服务器上使用根域,使用子文件夹。在所有情况下,我都被重定向到safari网页,下拉打开我的应用程序作为选项 我错过了什么?
答案 0 :(得分:6)
在这里花了一些时间尝试配置Universal Links是我到目前为止所学到的:
1 - 通用链接不要使用重定向或在Safari地址栏中键入链接并按Enter键。
2 - 在Notes中键入您的地址并单击它,如果您的应用程序直接打开,则表示您已正确设置所有内容。
3 - 当用户在您的网站上执行操作时,通用链接会起作用,尝试在您的网站/博客上添加一个按钮,并将其链接到用于打开您的应用的通用链接。现在在Safari中打开您的网站/博客,然后点击按钮,它将直接打开您的应用程序。
4 - 当您点击'打开'在Safari中,由于第1点中提到的原因,后续呼叫不会直接打开应用程序。
希望这会有所帮助:)
答案 1 :(得分:5)
您在使用应用程序时可能已点击设备状态栏上的一个小按钮,这会将您带回网站。一旦你这样做,系统就会记住这一点,并且在点击你的应用程序的通用链接时总会启动Safari。要撤消该操作,请长按该链接,然后在弹出的菜单中选择“使用[您的应用]打开”
答案 2 :(得分:-1)
在AppDelegate.m中将此称为:
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options;{
NSLog(@"url recieved: %@", url);
NSLog(@"query string: %@", [url query]);
NSLog(@"host: %@", [url host]);
NSLog(@"url path: %@", [url path]);
NSDictionary *dict = [self parseQueryString:[url query]];
NSLog(@"query dict: %@", dict);
if ([[url host] isEqualToString:@"login"]) {
[self setupHomeScreen:NO type:@"" entityId:@""];
[self _endSession];
return YES;
} else if ([[url host] isEqualToString:@"smartoffice"]) {
NSMutableDictionary *result = [[NSMutableDictionary alloc] init];
NSRange needle = [url.absoluteString rangeOfString:@"?" options:NSCaseInsensitiveSearch];
NSString *data = nil;
if(needle.location != NSNotFound) {
NSUInteger start = needle.location + 1;
NSUInteger end = [url.absoluteString length] - start;
data = [url.absoluteString substringWithRange:NSMakeRange(start, end)];
}
for (NSString *param in [data componentsSeparatedByString:@"&"]) {
NSArray *keyvalue = [param componentsSeparatedByString:@"="];
if([keyvalue count] == 2){
[result setObject:[keyvalue objectAtIndex:1] forKey:[keyvalue objectAtIndex:0]];
}
}
NSString *entityID = ([result objectForKey:@"secondparameter"]);
NSString *type = [result objectForKey:@"parameter"];
[self setupHomeScreen:YES type:type entityId:entityID];
//[self setupHomeScreen:YES type:@"TASK" entityId:@"160315"];
return result;
} else {
NSLog(@"myApp is not installed");
[self setupHomeScreen:NO type:@"0" entityId:@"0"];
}
return NO;
}
打开Xcode,转到“项目设置”->“信息”,然后在“ URL类型”部分中添加新的URL方案。
这是方案:// resource。因此,我们继续输入com.myApp://
请给我我的backofficeapp://
现在在Safari上使用此链接
backofficeapp:// //这只会将您重定向到登录页面。
OR
backofficeapp://smartoffice/1?parameter=TASK&secondparameter=157536
哪里
参数=“任务”
secondparameter =“任务ID” // #iOS Mobile 2020 = 157536
此参数用于在特定屏幕上着陆。
请记住,如果未安装该应用程序,则该URL将不起作用。