同一手机中的不同APP交互是APP功能中一个常用的功能。除了自动唤醒等等隐蔽交互之外,用户主动的APP交互也是非常频繁的,主要包括共享、第三方登录、第三方交互等等。这些功能都是不可或缺的,其原理是使用URL Scheme来进行功能实现。
1.什么是URL Scheme?
URL Scheme就是一个可以让app相互之间可以跳转的协议。每个app的URL Scheme都是不一样的,如果存在一样的URL Scheme,那么系统就会响应先安装那个app的URL Scheme,因为后安装的app的URL Scheme被覆盖掉了,是不能被调用的。
2.应用之间跳转原理
一个应用能打开另一个应用的必然条件是,另一个应用必须配置一个scheme(协议),这样应用程序才能根据协议找到需要打开的应用。APP应用在系统中通过注册Scheme的方式注册自己,常见的Scheme就是 http:,声明了这个Scheme的应用就是声称自己支持http协议,能够打开网页了。还有一些常见的Scheme比如 file:(传输文本), tel:(通话)等。
当然,APP应用不仅可以声明这些标准的Scheme,也能声明自己独有的Scheme,比如微信的就是 weixin:, QQ 的是 mqq: ,如果多个应用都声明相同的Scheme呢?比如应用a、b、c都声明自己能发短信,这时系统会有一定的策略来保证公平性,比如在Android系统中,就会弹出支持的应用列表,让用户选择, iOS则替用户选择近打开过的支持应用。
3.应用之间传递数据
了解了应用之间调用的方法,那么后面数据传递就简单了,只需要在Scheme后面携带上需要传递的信息作为参数就可以了。比如,发起调用的是应用A,被调用的是应用B。yingyongB://action=sendmessage,message=”xxx”,后面的数据会带到应用B中,但是应用B接到了信息不知道该信息是哪个应用发的,回信息给哪个应用。如何进行回调呢?发起调用的应用A在Scheme后面加一个参数backScheme=yingyongA: ,这样应用B就知道了需要返回信息给应用A,应用A和B这种自定义协议也可以叫做伪协议,只要双方应用能识别处理就可以。
同样,我们也可以实现跳转到指定页面的功能。想要跳转到指定界面,必定是上一个app告诉下一个app(被跳转的app)需要跳转到哪个界面,而如何告诉它这里便涉及到两个app的通信。两个app之间的跳转只需要配置一个Scheme,通过协议即可实现。
APP跳转的交互原理并不复杂,只要通过一套简单的协议即可实现。因此在设计的时候不用太多考虑这部分功能的成本,可以尽可能的多采用调取方式,因为这类功能能够方便用户,也是增强用户体验的一部分。
我们拥有国内顶级的设计、技术团队和多年互联网软件开发经验。