目录

  • 相关名词了解
  • 具体操作步骤

一、相关名词了解

白名单:“白名单”的意义是要检查当前设备上是否安装了其他App,而不是打开其他App必须添加“白名单”。

二、具体操作步骤

  1. 配置自己项目的url scheme, 注意这个是配置自己项目,假设你的项目是zhenxin, 这里的配置的URL Schemes:zhenxin是代表你自己项目。 identifer:选填,因为他其实就是url schemes的拓展一样,一般我们zhenxin:// 就可以跳转,如果加了这个,zhenxin://com.chengfu.ZhenXin,也是跳转一样的。
  2. 配置白名单:验证某个app是否安装。
  • 加白名单的步骤
    1.假设我们要跳转到zhao app, 我们需要获取到zhao app 他在Xcode 所配的url schemes。如:他配置的URL Schemes : zhao, identifer: com.cheng.zhao (通常可以选择用自己项目的bundle id).

    2.在项目中在info.plist中添加跳转的app,判断是否存在的白名单。

    应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。

    如果没有将 scheme 添加到白名单中却在 -canOpenURL: 中使用了,你的查询会报error。(需要注意的是,最多只能添加50个)

  <key>LSApplicationQueriesSchemes</key><array><string>zhao(这个就是我们跳转的app的url scheme)</string></array>

3.当点击按钮,开始跳转到其他app.

@IBAction func openZhaoAppClick(_ sender: UIButton) {//方法一:先判断在跳转let urlString = "zhao://com.cheng.zhao"
//        let urlString = "zhao://"let appUrl = URL(string: urlString)let appIsExist = UIApplication.shared.canOpenURL(appUrl!)if appIsExist == true {if let url = appUrl {//根据iOS系统版本,分别处理if #available(iOS 10, *) {UIApplication.shared.open(url, options: [:],completionHandler: {(success) in})} else {UIApplication.shared.openURL(url)}}}else{print("不存在zhao app")}//方法二:直接跳转,不加白名单进行判断(不推荐)//        if let url = appUrl {//            //根据iOS系统版本,分别处理
//            if #available(iOS 10, *) {//                UIApplication.shared.open(url, options: [:],
//                                          completionHandler: {//                                            (success) in
//                })
//            } else {//                UIApplication.shared.openURL(url)
//            }
//        }}

4.如果别人通过以上方法跳转到我们自己的app,我们可以通过代理,获取到整个跳转链接,包括链接中对方传递过来的参数等。

 func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {let options1 = options as NSDictionarylet str1 = options1["UIApplicationOpenURLOptionsSourceApplicationKey"] ?? ""print("url:")print(url)print("==========")print("url scheme:")print(url.scheme ?? "")print("==========")print("url host:")print(url.host ?? "")print("==========")print("url path:")print(url.path)print("==========")print("url query:")print(url.query ?? "")print("==========")print("url identier:")print(options)print("==========")print("bundle id:")print(str1)//        if str1 as! String == "cn.cf.xingxing" {//            if url.absoluteString.contains("authdone"){//                let vc = DetailViewController()
//                UIApplication.shared.keyWindow?.rootViewController?.present(vc, animated: true, completion: nil)
//
//
//            }
//            return true
//        }return true}

我们从这里,进而可以分析出来,url scheme 他的一个路径组成部分。
URL Scheme://host(主机)/path(路径,跳转到哪一个页面)/query(对方传过来的参数)

URL Scheme app 跳转相关推荐

  1. android url scheme 跳转传值,如何自定义 URL Scheme 进行跳转

    一.URL Scheme 简介和作用 在 :// 之前的部分就称为 URL Scheme. 也就是说 http://www.jianshu.com/ 的 URL Scheme 就是 http . 更多 ...

  2. url scheme 实现跳转到小程序页面

    获取小程序scheme码,适用于短信.邮件.外部网页等拉起小程序的业务场景.通过该接口,可以选择生成到期失效和永久有效的小程序码 参考文档:https://developers.weixin.qq.c ...

  3. 【Android 教程系列第 12 篇】常用 App 的 URL Scheme

    这是[Android 教程系列第 12 篇],如果觉得有用的话,欢迎关注专栏. App 的 URL Scheme 就像网页的 url 链接一样,可以打开 App 或跳转到相应的页面. 下面是我结合 参 ...

  4. 常用移动应用 Packagename 和 URL Scheme

    常用移动应用 Packagename 和 URL Scheme App URLS App Packagename (Android) Url Scheme (iOS) 支付宝 com.eg.andro ...

  5. iOS app url scheme跳转到淘宝商品详情页 唤醒app

    最近涉及的一个业务,在app内的一个广告,点击打开webView,加载的是一个淘宝商品详情页,效果是打开该webView自动跳转至淘宝对应的页面,同时在自己的app仍然加载页面,点击评论等也同样能跳转 ...

  6. ios中设置URL Scheme及如何跳转到其他APP中

    URL Scheme的作用 我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的.但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便 ...

  7. MobLink网页跳转app指定界面技术简介之 URL Scheme

    URL Scheme是什么 由于苹果的app都是在沙盒中,相互是不能访问数据的.但是苹果还是给出了一个可以在app之间跳转的方法:URL Scheme.简单的说,URL Scheme就是一个可以让ap ...

  8. iOS 通过URL Scheme跳转到常用的App

    微博开放的接口是最多的(在网上找了个遍) 打开微博: sinaweibo:// 打开微博个人主页: sinaweibo://userinfo?uid=xxxxxxxxx 打开具体某一条微博: sina ...

  9. (0089)iOS开发之iOS应用间相互跳转(URL Scheme)

    需求:假设有应用A和应用B两个应用,现在需要从应用A跳转到应用B中.如果手机中没有安装跳到下载页,如果已经安装直接打开APP. 认识URL Scheme URL Schemes是苹果给出的用来跳转到系 ...

最新文章

  1. 虚拟机centos7繁忙关不了机的解决方法(转载)
  2. 2012 RDS Remote App 对于win7的支持问题
  3. 洛古 P1373 小a和uim之大逃离
  4. Server Too Busy
  5. 子查询dinstinct放哪_第四关 复杂查询
  6. 移动端网页fixed布局问题解决方案
  7. SpringMVC实现文件上传
  8. CSS按钮动画(四)
  9. 优化性能一点总结,供大家参考
  10. 图像算术编码 matlab,实验二:算术编码及MATLAB实现.doc
  11. linux下Cacti网络监控之监控华为quidway s2000交换机
  12. “创作大师——(PyTorch)RNN”
  13. Python 运算符(Operators)
  14. maven dependency 警告:Overriding managed version XXX for XXX
  15. 51单片机:点亮LED灯
  16. const的小把戏。
  17. 《预训练周刊》第52期:屏蔽视觉预训练、目标导向对话
  18. macbook 打开以后没有声音,重启以后又好了的解决方法
  19. 【高等数学基础进阶】多元函数微分学-重极限、连续、偏导数、全微分
  20. 数据库udf提权,WAF绕过

热门文章

  1. 高斯模糊c语言,C语言实现高斯模糊
  2. ceil和floor函数用法
  3. .m3u8.sqlite文件转mp4,m3u8.sqlite文件转视频工具(开源免费)
  4. CachedRowSet 使用 之 离线更新数据
  5. react-native:require含义
  6. html中marquee改变颜色,HTML marquee标签
  7. 应用程序正常初始化(0x0000135)失败的解决方案
  8. linux jq 遍历数组,jquery怎么遍历数组?
  9. open函数返回值为0
  10. 【C语言】有一行电文,已按下面规律译成密文:A->Z a->z即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编写程序将密文译回原文并输出。请使用数组实现。