1.使用URL Scheme跳转到其他应用
如果我们想要跳转到别的应用,首先你要知道其他App的Scheme是什么?以下是一些常见的应用的Scheme
QQ mqq://
微信是 weixin://
网易新闻 newsapp://
淘宝 taobao://
点评 dianping://
微博 sinaweibo://
支付宝 alipay://
豆瓣fm: doubanradio://
微盘 sinavdisk://
网易公开课 ntesopen://
美团 imeituan://
人人 renren://
我查查 wcc://
1号店 wccbyihaodian://
有道词典 yddictproapp://
知乎 zhihu://
优酷 youku://
ZAKER zakeripad://
mdict mdict://
京东hd openApp.jdiPad://
易迅 icson://;yixunipad://
wunderlist wunderlist://
支付宝 alipay://
比如我们想要跳转去微信,首先我们把微信的schemes加入到应用的白名单。在当前app的info.plist文件中增加LSApplicationQueriesSchemes字段为Array,然后把需要跳转的应用加入。如下图
然后在触发事件加入下面的代码
letstring="weixin://data=xxx"//data=xxx为传递参数leturl=URL.init(string:string)ifUIApplication.shared.canOpenURL(url!){letdict=[:]as[String:Any]//iOS10 之后 open方法增加了 参数options可以传递一个字典 携带一些信息给被跳转的app处理, 还有一个闭包,来传递是否跳转成功?if#available(iOS10.0,*){UIApplication.shared.open(url!,options:dict,completionHandler:{(res)inprint("跳转是否成功?\(res)")})}else{// Fallback on earlier versionsUIApplication.shared.openURL(url!)}}
schemes可以传递信息,这里的weixin://之后的内容 data=XXX就是传递的参数。iOS10 之后 open方法增加了 参数options可以传递一个字典 携带一些信息给被跳转的app处理, 还有一个闭包,来传递是否跳转成功?
这里注意一下要对url scheme 进行encoding 编码,否则汉字 空格 会崩溃
2.创建Schemes让其他app来跳转到我们的app
(1.)在App内的info->URL Ttpes->增加一个URL Schemes如下图
(2.)处理其他app跳转过来的携带的信息
在Appdelegate里面添加下面方法
//此方法从iOS9开始启用funcapplication(_app:UIApplication,open url:URL,options:[UIApplicationOpenURLOptionsKey:Any]=[:])->Bool{print(url,options)returntrue}//此方法iOS9之后被废弃funcapplication(_application:UIApplication,handleOpen url:URL)->Bool{returntrue}//此方法iOS9之后被废弃 url 为scheme url sourceApplication 为跳转过来app的bundle idfuncapplication(_application:UIApplication,open url:URL,sourceApplication:String?,annotation:Any)->Bool{returntrue}
以上三个方法实现一个即可,可依据自己兼容的最低iOS版本而定。
3.系统的一些Schemes
系统内置 telprompt:10010tel:10010//拨打电话facetime://user@example.com//facetime 通话facetime-audio://user@example.com// facetime 语音sms:86-130-9999-9999&body=你好//body 为信息内容 可省略 bodymailto:foo@example.com?cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!//第一个为发送给谁 参数cc为抄送给谁 subject 为邮件的主题 body为内容 后面的参数都可以省略itms-apps:itms-apps://itunes.apple.com/cn/app/idXXXXXX?mt=8&action=write-review//跳转appstore去评价 注意把id后面的XXXXX换成自己应用的号码。
//直接跳转到系统对应的设置页面,但是试验发现iOS10 可以执行,iOS11无效电池电量 App-Prefs:root=BATTERY_USAGE 通用设置 App-Prefs:root=General 存储空间 App-Prefs:root=General&path=STORAGE_ICLOUD_USAGE/DEVICE_STORAGE 蜂窝数据 App-Prefs:root=MOBILE_DATA_SETTINGS_ID Wi-Fi 设置 App-Prefs:root=WIFI 蓝牙设置 App-Prefs:root=Bluetooth 定位设置 App-Prefs:root=Privacy&path=LOCATION 辅助功能 App-Prefs:root=General&path=ACCESSIBILITY 关于手机 App-Prefs:root=General&path=About 键盘设置 App-Prefs:root=General&path=Keyboard 显示设置 App-Prefs:root=DISPLAY 声音设置 App-Prefs:root=Sounds App Store 设置 App-Prefs:root=STORE 墙纸设置 App-Prefs:root=Wallpaper
作者:liangZhen
链接://www.greatytc.com/p/3e450cbb742b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。