App跳转ios10之前和ios10之后分别是通过(下面我介绍的主要是oc swift的可以去这里看一下)
//ios10之前
- (BOOL)openURL:(NSURL*)url
//ios10之后
- (void)openURL:(NSURL*)url options:(NSDictionary *)options
completionHandler:(void (^ __nullable)(BOOL success))completion
现在变为三个参数 (图A是我在实际应用中遇到的问题和使用方法 有兴趣的可以研究一下 也可以提一下意见)
1.打开App的URL
2.可选字典参数(请参见以下有效条目)。传入一个空字典可以达到openURL:一样的行为。
3.执行成功后completionhandler在主队列中回调。如果你并不关心它的返回状态也可以传空。
1)创建两个项目AppOne和AppTow 这一步起好名字可以好区分就可以了
2)配置AppOne和AppTow
图1 图2如图配置好URL Schemes 如果你只想AppOne 跳转到AppTow 就可以值配置AppTow 。AppOne这里可以为空
3)如果是ios9之前 这样就配置就完成了 但是如果是ios9之后的系统 则需要加入白名单否则App跳转会失败 需要做下图的白名单配置
图3在项目plist文件里面 增加LSApplicationQueriesSchemes数组 把允许跳转的URL Schemes增加到这个数组里面即可
5)代码
图4如图配置好 AppDelegate里面的application: openURL: options:代理方法
这个方法是当有App跳转过来的时候会调用 如果跳转过来的App有参数 也可以从这个方法里面接受解析出来做后续操作 如自己App跳转到支付宝支付宝根据我们app传入的操作做后续的支付或者其他操作等 并且传的参数可以为图片或者其它类型的!(大家可以看看作者icetime17 的文章研究一下 )
图5下面就是跳转了 实际跳转中 我们需要判断一下设备是否安装了 我们要跳转的App 根据[[UIApplicationsharedApplication]canOpenURL:ourURL]来判断 如果安装了 就可以使用我们上面说的 ios10之前和之后的方法进行 跳转了 ios10之后的跳转可以在block里面做跳转成功后的操作
网友评论