利用URL Scheme打开指定应用的通知

来源:互联网 发布:iapp源码大全 编辑:程序博客网 时间:2024/05/24 05:14

需求

最近遇到一个小问题,睡前会习惯性把微信的通知关闭。睡醒后又会把微信的通知打开。
这个动作总共需要耗费三个步骤:打开设置->通知->微信。
虽然只有十几秒,但是作为一名程序员充分发挥懒的天赋。希望能一步到位,最好一键开关。
由于iOS系统的设置,最多只能打开指定应用的通知设置界面。接着需要用户自己手动进行打开/关闭动作(这也正常,否则系统就乱了套)
其中,利用URL Scheme打开直接打开指定应用的通知设置界面。

背景

iOS系统为了保护用户的隐私与安全,将每个应用封装在沙盒中。应用只能访问系统允许访问的资源。但这一做法同时也阻碍了应用之间的信息交流与共享。因此,Apple 给出了一个可以让app之间进行相互跳转的方法:URL Scheme。(当然,URL Scheme的作用不止如此)

打开指定应用的通知界面

关键代码:

App-prefs:root=NOTIFICATIONS_ID&path=应用的bundle id

这就产生另一个问题,如何得知指定应用的bundle id。下面来详解如何获得指定应用的bundle id

寻找指定应用的bundle id

①利用iTunes下载微信

②找到微信的iPa包

③利用解压工具打开
这里写图片描述

④找到并打开微信的app
这里写图片描述

⑤右键打开显示包内容
这里写图片描述

⑥找到并打开info.plist
这里写图片描述

⑦找到bundle id
这里写图片描述

由此可以发现微信的Bundle id是com.tencent.xin。

应用

object-c
打开微信通知设置界面

    NSDictionary * options = @{UIApplicationOpenURLOptionUniversalLinksOnly:@NO};    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-prefs:root=NOTIFICATIONS_ID&path=com.tencent.xin"] options:options completionHandler:nil];

workflow中
也只需两步
①填写相应的URL
②打开对应的URL
这里写图片描述

总结

总得来说,现在由原来的三步简化为一步。
当然,Url Scheme的用途远不止如此。

参考资料

URL Schemes 的汇总:https://github.com/phynet/iOS-Schemes
URL Schemes 使用详解:https://sspai.com/post/31500#01

原创粉丝点击