小程序、网页跳转App的原理

news/2024/11/24 11:57:55/

从不同的渠道,如小程序、二维码、网页等,直接跳转到App内对应的页面,并传递相关的参数信息,已经由拥有深度链接技术的SDK实现了,App只需接入这类SDK即可获得多样化跳转的功能。本文将详细介绍多样化跳转的原理。

多样化跳转的功能架构

如下图所示:

 

从图中可以看出,多样化跳转主要涉及三个部分:客户端、服务器和网页。客户端是集成了 SDK的App,服务器是SDK提供的云端服务,网页是嵌入了 JS的HTML页面。客户端、服务器和网页之间通过HTTP协议进行通信,传递场景参数和设备信息。

多样化跳转的实现原理

1. 设置场景参数

在App中分享商品/内容/活动页面时,需要将需要跳转到App内的页面和参数信息添加到分享的链接中。这可以通过两种方式实现:

  • 通过网页端的params直接设置参数信息,例如:

<script type="text/javascript" src="//1p.t4m.cn/applink.js"></script>
<script>// 页面上仅单个元素需要跳转时可以使用对象方式进行初始化MobLink({el: '',path: 'demo/a',params: {key1: 'value1',key2: 'value2',}})
</script>
  • 通过客户端的接口设置参数信息,例如:

//java代码
// 设置场景参数
HashMap<String, Object> senceParams = new HashMap<String, Object>();
senceParams.put("key1", "value1");
senceParams.put("key2", "value2");
senceParams.put("key3", "value3");// 新建场景
Scene s = new Scene();
s.path = "/demo/a";
s.params = senceParams;// 请求场景ID
MobLink.getMobID(s, new ActionListener<String>() {public void onResult(String mobID) {// TODO 根据mobID进行分享等操作}public void onError(Throwable throwable) {// TODO 处理错误结果}
});

2. 生成短链

在设置了场景参数后,需要将参数信息发送给SDK的服务器,并生成一个短链,如:

http://f.moblink.mob.com/pro/scene/nf9a

短链中包含了场景ID,它是一个唯一标识符,用于在服务器中查询对应的场景参数。

3. 分享短链

生成短链后,就可以将短链分享给其他用户,分享到微信、QQ、微博等社交平台。用户点击短链后,会打开一个网页,网页中嵌入了 JS代码。

4. 跳转到App

网页中, JS代码会根据短链中的场景ID向服务器请求对应的场景参数,并缓存到本地。同时,JS代码会尝试打开对应的App,并将参数信息传递给App。

如果打开成功,App中集成的SDK会接收到参数信息,并根据参数信息跳转到对应的页面。例如:

//java代码
public class RestoreSenceActivity extends Activity implements SceneRestorable {@Overridepublic void onReturnSceneData(Scene scene) {// 处理场景还原数据, 可以在这里做更新画面等操作}@Override // 必须重写该方法,防止MobLink在某些情景下无法还原protected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);MobLink.updateNewIntent(getIntent(), this);}
}

如果打开失败,JS代码会把当前设备的信息缓存到服务器,并跳转到App的下载页面。用户下载并安装App后,App中集成的SDK会向服务器请求缓存的设备信息和参数信息,并根据参数信息跳转到对应的页面。


http://www.ppmy.cn/news/108136.html

相关文章

Spring Cloud Zuul 是什么?如何使用它来实现 API 网关?

Spring Cloud Zuul 是什么&#xff1f;如何使用它来实现 API 网关&#xff1f; 在微服务架构中&#xff0c;服务之间的通信变得非常频繁和复杂。为了简化服务之间的通信和管理&#xff0c;很多企业都采用了 API 网关的架构模式。API 网关可以帮助我们统一处理服务的入口、路由…

高压放大器在驱动压电陶瓷进行铝板无损检测中的应用研究

想要达成在不损害或不影响被测对象使用性能及自身性质的前提下&#xff0c;对被测对象内部进行缺陷&#xff0c;结构&#xff0c;失效分析&#xff0c;就得用到无损检测&#xff08;Non Destructive Testing&#xff09;技术&#xff0c;最常用的无损检测方法有很多&#xff0c…

查看elf文件的常用命令总结

一&#xff0c;简介 本文主要介绍什么是elf文件&#xff0c;以及查看elf文件内部信息的常用命令。 二&#xff0c;ELF文件介绍 ELF&#xff08;Excutable Linkable Format&#xff09;。 ELF文件不仅包括可执行文件还包括动态链接库和静态链接库。 三&#xff0c;常用命令汇…

Java阶段三Day06

Java阶段三Day06 文章目录 Java阶段三Day06同步请求和异步请求案例演示创建SpringBoot工程application.propertiesUserControllerUserMapper静态页面 JSONSpring Security引入SpringSecurity框架对项目的影响关于SpringSecurity的配置默认登录表单设置白名单模拟登录使用自己的…

Python期末复习题库(下)——“Python”

小雅兰期末加油冲冲冲&#xff01;&#xff01;&#xff01; 1. (单选题)下列关于文件打开模式的说法,错误的是( C )。 A. r代表以只读方式打开文件 B. w代表以只写方式打开文件 C. a代表以二进制形式打开文件 D. 模式中使用时,文件可读可写 2. (单选题)下列选项中,以追加…

水声声波频率如何划分?水声功率放大器可将频率放大到20MHz吗?

水声声波频率如何划分&#xff1f;水声功率放大器可将频率放大到20MHz吗&#xff1f; 现如今我们可以在地球任意地区实现通信&#xff0c;是因为电磁波的作用。但是我们都知道海洋占了全球十分之七面积&#xff0c;电磁波在水下衰减速度太快&#xff0c;无法做到远距离传输&am…

学会这两件事,让你在人生路上走得更远

人生&#xff0c;就是一场不断前行&#xff0c;没有退路的旅行&#xff0c;也是一场不断醒悟的过程。 看透&#xff0c;然后醒悟&#xff1b;放下&#xff0c;然后幸福。 有些事&#xff0c;看淡就好&#xff1b;有些人&#xff0c;看穿就行。 不管世事如何艰难&#xff0c;只要…

七人拼团系统开发模式详解

七人拼团是最近兴起的一个模式&#xff0c;它通过更人性化的奖励机制&#xff0c;将产品利润最大化让利给参与拼团的用户&#xff0c;达到促进用户主动积极裂变和团队平台引流提升销量的效果&#xff0c;下面就来详细说一下这个模式。 七人拼团最大的特点&#xff0c;就是结合了…