App之间相互跳转,需要借助Url Scheme
URL配置
参数说明:
CFBundleURLName | 这是个字符串,表示URL类型的抽象名。为了确保其唯一性,建议您使用反向DNS风格的标识,比如com.acme.myscheme。 这里提供的URL类型名是一个指向本地化字符串的键,该字符串位于本地化语言包子目录中的InfoPlist.strings文件中。本地化字符串是人类可识别的URL类型名称,用相应的语言来表示。 |
---|---|
CFBundleURLSchemes | 这是个URL模式的数组,表示归属于这个URL类型的URL。每个模式都是一个字符串。属于指定URL类型的URL都带有它们的模式组件。 |
ios9之后需要添加跳转白名单
打开info.plist文件,添加一下这个LSApplicationQueriesSchemes,里面的数组就是需要跳转的APP
UIApplication的openURL的过程
- 跳转到内置程序:prefs:root=General。重点是root的值,具体的可以看下后面提供的一些值,如果有不能用的替换成正确的就ok了
- 跳转到对应app的某个系统位置:比如定位、通知位置等.prefs:root=NOTIFICATIONS_ID&&path=com.tencent.mqq后面的path就是需要打开的APP的bundle id (程序的后面有给出获取bundle id的代码),root的值跟第一点提到的是一致的
- 跳转到某个app里面:需要用到的就是上面提到的phzAppJumpDemo ,如果发现有两个相同的url scheme,会打开最近一次启动过的app
- openUrl还可以实现打开mail、电话、sms、Safari等