美文网首页
APP之间相互调用的功能

APP之间相互调用的功能

作者: yusuibo12 | 来源:发表于2017-12-13 13:44 被阅读0次

在产品设计中,经常会遇到APP之间相互调用的功能设计,比如:

实现三方登录。用QQ账号快速登录,如果安装了 QQ,那么应用会调用QQ的快速登录界面,确认后, QQ会回调到原来的应用,同时将登录的状态信息返回给了原应用。

实现分享。选择应用内的可分享内容,点击分享,选择朋友圈,于是微信的朋友圈被调起,并将这张图片发了出去,并询问你是返回原应用还是留在微信,如果你选择了返回原应用,那么原来的应用又会被调起。

实现第三方支付。选择应用内要支付的内容,选择支付方式,一般会提供支付宝或微信,点击后跳转到支付宝或微信的付款页面,完成支付后回到该应用。

实现手机网页引导并打开应用功能。在推广的H5页面上,加入打开APP的按钮,点击后直接调起我们的APP,并且可以根据参数信息,在本地应用中还原用户的浏览场景。

这些过程实现的原理就是利用URL Scheme

什么是URL Scheme

URL Scheme就是一个可以让app相互之间可以跳转的协议。每个app的URL Scheme都是不一样的,如果存在一样的URL Scheme,那么系统就会响应先安装那个app的URL Scheme,因为后安装的app的URL Scheme被覆盖掉了,是不能被调用的。

应用之间跳转原理

一个应用能打开另一个应用的必然条件是,另一个应用必须配置一个scheme(协议),这样应用程序才能根据协议找到需要打开的应用。

APP应用在系统中通过注册Scheme的方式注册自己,常见的Scheme就是 http:,声明了这个Scheme的应用就是声称自己支持http协议,能够打开网页了。还有一些常见的Scheme比如 file:(传输文本), tel:(通话)等。

当然,APP应用不仅可以声明这些标准的Scheme,也能声明自己独有的Scheme,比如微信的就是 weixin:, QQ 的是 mqq: 。

如果多个应用都声明相同的Scheme呢?比如应用a、b、c都声明自己能发短信,这时系统会有一定的策略来保证公平性,比如在Android系统中,就会弹出支持的应用列表,让用户选择, iOS则替用户选择近打开过的支持应用。

应用之间传递数据

了解了应用之间调用的方法,那么后面数据传递就简单了,只需要在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之间相互调用的功能

    在产品设计中,经常会遇到APP之间相互调用的功能设计,比如: 实现三方登录。用QQ账号快速登录,如果安装了 QQ,...

  • App 之间调用

    准备

  • 内容分享之分享简单数据

    Android应用的一个重要的功能就是应用间可以相互交流和互相调用,自己的app只要做好自己核心的功能,其他非核心...

  • HHRouter解析

    关于App内部的路由设计,主要需要解决2个问题: 1.各个页面和组件之间的跳转问题。 2.各个组件之间相互调用。 ...

  • iOS app通信(app相互调用、网页调用app)

    前言   相信做iOS开发的基本都接入过支付宝、微信之类的一些第三方用于支付、分享等功能。最开始使用的时候,一知半...

  • 设计模式(18) 中介者模式

    一个软件系统中往往包含了很多的类,这些类之间会存在互相的调用,随着系统的升级、功能的扩展,这些相互调用关系会变得非...

  • springcloud1-微服务互相调用

    在微服务架构中,完成一项功能可能需要多个分离的微服务的功能整合起来,服务之间需要相互通信配合工作,http调用就是...

  • URL Scheme(应用间的跳转)简单介绍--本文是我的笔记,

    概念: URL Scheme 是方便app之间相互调用而设计的,你可以通过一个类似URL的链接,通过系统的Open...

  • Android 中的 intent 和 intent-filte

    在Android 中四大组件之间都可以进行相互的调用,但是一般在App中只是对于Activity ,Service...

  • import命令

    模块的功能主要由 export 和 import 组成.每一个模块都有自己单独的作用域,模块之间的相互调用关系是通...

网友评论

      本文标题:APP之间相互调用的功能

      本文链接:https://www.haomeiwen.com/subject/fubaixtx.html