涉及到跳转的几种常见情况
1. 使用第三方登录时,需要跳转到社交app,比如QQ,微信等。
2. 集成分享功能,目的是推广我们的app,分享消息到其他app,比如分享到QQ,微信等
3. 第三方支付,比如支付宝支付、微信支付等
4. 导航,需要跳转到系统自带的地图
5. 还有跳转到系统的app,比如打电话、发短信等
1. 应用跳转是根据协议头跳转的,想跳到哪个app,就需要去找对应app的URL scheme,open URL: ,一般需要判断,不判断的话,可以直接跳转,不用设置白名单,如果判断了,就必须要设置白名单,其实能不能打开就是看有没有添加白名单;A跳B,在A中添加白名单
2. 如果想跳转到指定的界面,需要在URL中给目标app传入自定义标识(red或blue),在appDelegate的方法application: openURL: 截取对应的字符串来进行相应的跳转;
3. 如果想点击按钮做返回跳转,需要在跳转的URL中添加自己app的URL scheme,同样在上面方法中截取字符串。获取bundle中的urlscheme,把要返回的url传递给destination应用,以便于返回跳转,可以在appDelegate中用一个属性来保存这个字符串。
一有canopenURL:判断,就需要设置白名单,但是在返回时第三方app是怎么安排的并不需要关心
4. 关于上述的URLString,如果第三方app是自己开发的,那么就可以自定义,如:@"destination://red?自己的URL scheme",如果是跳转到其他公司的app,则需要根据开发文档来进行相关的定义。