iOS-app跳转safari及从safari跳回app功能实现
app跳转safari
可以用苹果系统方法openURL:来实现:
[UIApplication sharedApplication] openURL:[NSURL URLWithSring:@"网址"]];
safari跳回app
要实现这个功能,必须要知道URL Schemes,那什么是URL Schemes?下面来简单的介绍一下:
URL,我们都很清楚,https://www.baidu.com 就是个 URL,我们也叫它链接或网址;
Schemes,表示的是一个 URL 中的一个位置——最初始的位置,即 ://之前的那段字符。比如 https://www.baidu.com 这个网址的 Schemes 是 https。
这样说不是很明白,下面:
举个栗子我们选择项目->TARGETS->Info->URL Types,新增一个跳转app的定向URL,如下图所示:
Identifier:表示该app的唯一标识,这个可以随意设置,只要保证唯一性就好。
URL Schemes:这个也可以随意设置,是作为跳回该应用的一个Schemes,这样在safari的网址输入框输入app:// ,就可以跳转回应用。有趣的是,经过测试,你直接打开safari,输入app:// ,也可打开应用,前提是你已经安装该应用,否则提示无效的网址。
补充:
在safari跳转回app时也可以携带参数,传到app,通过系统方法接收到相应的参数内容,再进行相应的处理。
在safari网址输入框输入:app://?name=十月&age=18,然后在Appdelegate.m添加代码:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options {
NSLog(@"url:%@",url);
NSLog(@"scheme:%@",url.scheme);
NSLog(@"query:%@",url.query);
NSLog(@"options:%@",options);
return YES;
}
在该回调函数内可以接收到传过来的url及参数,接下来就是处理相应的逻辑了。
最后插一句,关于URL Schemes的详解,可以参考@Hum大神的URL Schemes使用详解,文章里介绍了从app跳转另一个app的实现方法和功能处理。
结语:学到的东西,自己记录一下也是不错的学习方法。由于之前也很少写东西,有什么不足之处,请指出!我也会慢慢改正,希望一起学习,一起成长!喜欢的话,可以点赞哦^oo ^!