iOS 修改多开应用跳转目标


场景

  1. 实现在合作登录、分享链接、分享文件时精准跳转至指定多开应用;
  2. 实现在安装 QQ 后应用程序无法调用 TIM 登录的问题;
  3. ……

原理

URL Schemes 是应用程序被其他应用程序启动的方法,在 info.plist 中定义(不分大小写)。安装应用程序后,应用程序会解析 info.plist,如检测到 CFBundleURLTypes,则将对应 Schemes 注册至系统。如有应用程序通过 [[UIApplication sharedApplication] openURL:url] 打开了 URL,系统会对照已经注册的 Schemes 启动相应应用程序。

修改

需越狱

  1. 打开 Filza File Manager
  2. 依地址打开应用程序安装目录:/private/var/containers/Bundle/Application/××/××.app
  3. 搜索 info.plist,打开大小最大项;
  4. 展开 Root,展开 CFBundleURLTypes,展开 Item ×,找到 CFBundleURLSchemes
  5. 根据语意修改各 Item,无语意项可不改;
  6. 修改完毕后储存文件,打开 iCleaner Pro 清理应用程序缓存或打开 Apps Manager 清除应用数据即可生效。

测试

在备忘录中输入 schemes: 或在 Safari 中输入 schemes://(部分 url 备忘录不生效)。
如:weixin:mqqapi://

常见 Schemes

微信:wexin:wechat:
微博:weibo:
QQ:mqqflyticket:mqqapi:mqq:mqqopensdkapi:mqqOpensdkSSoLogin:mqqapiwallet:mqqopensdkapiV2:


参考资料:
解决IOS微信多开后跳转问题(指定跳转到某个微信)
iOS URL Schemes 的定义和使用