URL Scheme app 跳转
目录
- 相关名词了解
- 具体操作步骤
一、相关名词了解
白名单:“白名单”的意义是要检查当前设备上是否安装了其他App,而不是打开其他App必须添加“白名单”。
二、具体操作步骤
- 配置自己项目的url scheme, 注意这个是配置自己项目,假设你的项目是zhenxin, 这里的配置的URL Schemes:zhenxin是代表你自己项目。 identifer:选填,因为他其实就是url schemes的拓展一样,一般我们zhenxin:// 就可以跳转,如果加了这个,zhenxin://com.chengfu.ZhenXin,也是跳转一样的。
- 配置白名单:验证某个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 跳转相关推荐
- android url scheme 跳转传值,如何自定义 URL Scheme 进行跳转
一.URL Scheme 简介和作用 在 :// 之前的部分就称为 URL Scheme. 也就是说 http://www.jianshu.com/ 的 URL Scheme 就是 http . 更多 ...
- url scheme 实现跳转到小程序页面
获取小程序scheme码,适用于短信.邮件.外部网页等拉起小程序的业务场景.通过该接口,可以选择生成到期失效和永久有效的小程序码 参考文档:https://developers.weixin.qq.c ...
- 【Android 教程系列第 12 篇】常用 App 的 URL Scheme
这是[Android 教程系列第 12 篇],如果觉得有用的话,欢迎关注专栏. App 的 URL Scheme 就像网页的 url 链接一样,可以打开 App 或跳转到相应的页面. 下面是我结合 参 ...
- 常用移动应用 Packagename 和 URL Scheme
常用移动应用 Packagename 和 URL Scheme App URLS App Packagename (Android) Url Scheme (iOS) 支付宝 com.eg.andro ...
- iOS app url scheme跳转到淘宝商品详情页 唤醒app
最近涉及的一个业务,在app内的一个广告,点击打开webView,加载的是一个淘宝商品详情页,效果是打开该webView自动跳转至淘宝对应的页面,同时在自己的app仍然加载页面,点击评论等也同样能跳转 ...
- ios中设置URL Scheme及如何跳转到其他APP中
URL Scheme的作用 我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的.但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便 ...
- MobLink网页跳转app指定界面技术简介之 URL Scheme
URL Scheme是什么 由于苹果的app都是在沙盒中,相互是不能访问数据的.但是苹果还是给出了一个可以在app之间跳转的方法:URL Scheme.简单的说,URL Scheme就是一个可以让ap ...
- iOS 通过URL Scheme跳转到常用的App
微博开放的接口是最多的(在网上找了个遍) 打开微博: sinaweibo:// 打开微博个人主页: sinaweibo://userinfo?uid=xxxxxxxxx 打开具体某一条微博: sina ...
- (0089)iOS开发之iOS应用间相互跳转(URL Scheme)
需求:假设有应用A和应用B两个应用,现在需要从应用A跳转到应用B中.如果手机中没有安装跳到下载页,如果已经安装直接打开APP. 认识URL Scheme URL Schemes是苹果给出的用来跳转到系 ...
最新文章
- 虚拟机centos7繁忙关不了机的解决方法(转载)
- 2012 RDS Remote App 对于win7的支持问题
- 洛古 P1373 小a和uim之大逃离
- Server Too Busy
- 子查询dinstinct放哪_第四关 复杂查询
- 移动端网页fixed布局问题解决方案
- SpringMVC实现文件上传
- CSS按钮动画(四)
- 优化性能一点总结,供大家参考
- 图像算术编码 matlab,实验二:算术编码及MATLAB实现.doc
- linux下Cacti网络监控之监控华为quidway s2000交换机
- “创作大师——(PyTorch)RNN”
- Python 运算符(Operators)
- maven dependency 警告:Overriding managed version XXX for XXX
- 51单片机:点亮LED灯
- const的小把戏。
- 《预训练周刊》第52期:屏蔽视觉预训练、目标导向对话
- macbook 打开以后没有声音,重启以后又好了的解决方法
- 【高等数学基础进阶】多元函数微分学-重极限、连续、偏导数、全微分
- 数据库udf提权,WAF绕过
热门文章
- 高斯模糊c语言,C语言实现高斯模糊
- ceil和floor函数用法
- .m3u8.sqlite文件转mp4,m3u8.sqlite文件转视频工具(开源免费)
- CachedRowSet 使用 之 离线更新数据
- react-native:require含义
- html中marquee改变颜色,HTML marquee标签
- 应用程序正常初始化(0x0000135)失败的解决方案
- linux jq 遍历数组,jquery怎么遍历数组?
- open函数返回值为0
- 【C语言】有一行电文,已按下面规律译成密文:A->Z a->z即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编写程序将密文译回原文并输出。请使用数组实现。