2019-12-26

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://[email protected]//facetime 通话facetime-audio://[email protected]// facetime 语音sms:86-130-9999-9999&body=你好//body 为信息内容 可省略 bodymailto:[email protected][email protected]&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

链接:https://www.jianshu.com/p/3e450cbb742b

来源:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(2019-12-26)