浅析APP应用中间彼此交互的原理

发布时间:2020-01-14 16:43 | 浏览人次:浏览次数

APP中间彼此调用并且传输数据经常会出目前实际需要中,我们应该对这样的基础功能的实现原理有1个简单的认识,这样也便利工作中和程序哥哥们的交流。
浅析APP应用中间彼此交互的原理

在产品设计中,经常会碰到APP应用中间彼此调用的功能设计,例如:

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

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

实现第三方支付。选择软件内要支付的内容,选择支付方法,普遍会提供支付宝或微信,点击后跳转到支付宝或微信的付款页面,完结支付后回到该软件。

实现手机网页指导并开启软件功能。在推广的H5页面上,参与开启APP的按钮,点击后直接调起我们的APP,并且能够依据参数信息, 在本地软件中还原会员的浏览场景。

这些历程实现的原理就是运用 URL Scheme。

什么是URL Scheme

URL Scheme就是1个能够让app彼此中间能够跳转的协议。每个app的URL Scheme全是不一致的,假如存在相同的URL Scheme,那么系统就会响应先安装那个app的URL Scheme,因为后安装的app的URL Scheme被覆盖掉了,是不能被调用的。

软件中间跳转原理

1个软件能开启另1个软件的必定条件是,另1个软件必须配置1个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后面加1个参数backScheme=yingyongA: ,这样软件B就知道了需求返回信息给软件A,软件A和B这种自定义协议也可以够叫做伪协议,只要双方软件能辨识处理就能够。

同样,我们也可以够实现跳转到特定页面的功能。想要跳转到特定界面,必然是上1个app告诉下1个app(被跳转的app)需求跳转到哪个界面,而怎样告诉它这里便牵涉到2个app的通信。2个app中间的跳转仅需求配置1个Scheme,通过协议即可实现。

更后上一段iOS测试代码:

//进到更多界面(上1个APP)

– (IBAction)intoMore:(id)sender {

NSURL *url = [NSURL URLWithString:@”test://more”];   //test://more是要跳转的页面名称

if ([[UIApplication sharedApplication] canOpenURL:url]) {

[[UIApplication sharedApplication] openURL:url]; //能否安装软件,url是跳转页面的地址

}else{

NSLog(@”没有安装软件”); //没有安装则提醒相应信息

}

}

在被调用的APP中,就会监听形式,对进到的页面进行判别。

归纳

以上就是软件中间进行交互原理的简单归纳,不一样平台会有自己一些特有的软件交互方法,用Scheme这种方法能够降低一些跨平台开发适配的成本,时候也有益于网页和Native中间的彼此调用。

上述内容就是小编今天为您带来的关于《浅析APP应用中间彼此交互的原理》的全部内容,希望能对您有所帮助,我们是一家成立于北京的IT外包公司,如果您有app软件或者微信小程序需要定制开发,不妨联系我们。
免责声明:本站部分文章转载自网络,不代表本站的观点和立场,不以盈利为目的。如有侵犯公司或个人权益,本站会第一时间删除文章。我们是一家北京app开发公司,欢迎咨询免费获取思维导图!

本文地址:https://appbj.cn/article/3026/

网友热评

暂无更多评论
思捷智联

思捷智联是一家2009年成立于北京的IT外包公司,我们致力于为企业提供app软件开发和微信小程序开发服务。公司成立10年来,我们为民政部、方正电子、神州数码、联想控股、壹基金、首钢集团、北京大学、北京师范大学、今麦郎、丰汇租赁、万通控股等上百家企业提供了IT外包服务。我们努力实现每一位客户的托付,为客户创造实在的效益,让您与梦想走得更近。

微信咨询

扫描微信二维码
同市场经理沟通需求

我们积累了丰富的移动互联网开发和运营经验,在开发中为客户提供更多帮助!
咨询热线:18612209195