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

这样说不是很明白,下面:

iOS-app跳转safari及从safari跳回app功能实现_第1张图片
举个栗子

我们选择项目->TARGETS->Info->URL Types,新增一个跳转app的定向URL,如下图所示:


iOS-app跳转safari及从safari跳回app功能实现_第2张图片

Identifier:表示该app的唯一标识,这个可以随意设置,只要保证唯一性就好。

URL Schemes:这个也可以随意设置,是作为跳回该应用的一个Schemes,这样在safari的网址输入框输入app:// ,就可以跳转回应用。有趣的是,经过测试,你直接打开safari,输入app:// ,也可打开应用,前提是你已经安装该应用,否则提示无效的网址。

补充:

在safari跳转回app时也可以携带参数,传到app,通过系统方法接收到相应的参数内容,再进行相应的处理。


iOS-app跳转safari及从safari跳回app功能实现_第3张图片

在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 ^!

你可能感兴趣的:(iOS-app跳转safari及从safari跳回app功能实现)