URL 跳转快应用的使用方法说明

官方开发文档:
https://doc.quickapp.cn/tutorial/platform/url-jump-configuration.html?h=url

URL 跳转配置是指在 H5 页面中可以通过调用相应 js 接口实现到快应用的跳转。

1、接入方式

使用本功能,需要在网页中嵌入以下 JS 脚本,支持 HTTP 与 HTTPS 访问。

联盟版本:
<script type="text/javascript" src="//statres.quickapp.cn/quickapp/js/routerinline.min.js"></script>

2、接口使用

2.1、跳转快应用

appRouter(packageName, path, params, confirm)

参数说明:

参数名 类型 必填 说明
packageName String 应用的包名,和 manifest.json 中保持一致。
path String 跳转的页面路径,对应于 manifest.json 中 page 的 path 字段。
如果传入的是 "/",则跳转到 path 为 "/" 的页面;如果无此页面,则跳转到首页。
更多信息,请参见 manifest.json 中 router 部分的说明。
params Object 传递的参数。
如果不传 params,会默认使用当前网页 url 的参数作为 params 的值。
参数的获取方式,参见页面切换及参数传递
confirm String 在跳转确认弹窗中显示的名称。
当不传或者为 false 时,表示无需用户确认直接跳转;当为其他非空值时,表示跳转时需要用户确认。

示例

<!DOCTYPE html>
<html>
<head>
  <title>URL 跳转配置</title>
  <script type="text/javascript" src="//statres.quickapp.cn/quickapp/js/routerinline.min.js"></script>
</head>
<body>
<!-- 调起应用 -->
<script type="text/javascript">
  // 无需用户确认的调用方式,xxx.yyy.zzz为包名
  appRouter("xxx.yyy.zzz", "/Home", { a: 1, b: 'abc' });
  // 需要用户确认的调用方式,xxx.yyy.zzz为包名
  appRouter('xxx.yyy.zzz', '/Home', { a: 1, b: 'abc' }, '显示给用户的应用名称');
</script>
</body>
</html>

2.2、检测平台是否支持服务 实验性功能

channelReady(callback)

参数说明:

参数名 类型 必填 说明
callback function 检测的回调函数,无论检测到是否支持服务,都会执行回调函数。
平台支持服务则传入实参 true,否则传入实参 false。

示例

<!DOCTYPE html>
<html>
<head>
  <title>URL跳转配置</title>
  <script type="text/javascript" src="//statres.quickapp.cn/quickapp/js/routerinline.min.js"></script>
</head>
<body>
<!-- 检测平台是否支持服务 -->
<script type="text/javascript">
  // 通过传递回调函数实现
  channelReady(function (bAvailable) {
    alert("是否存在框架服务:" + bAvailable)
  });
</script>
</body>
</html>

3、异常情况处理

3.1、无法跳转

1)传参错误:这种情况,请自行确认传参是否正确;

2)系统不支持:由于该功能涉及系统多个模块的修改,如果系统未集成,或者是集成异常的情况下,url也会失败;

此种情况下可以先使用 hap 跳转方式验证引擎是否正常,如果 hap 跳转成功,而 url 跳转失败,说明在该手机上 url 跳转功能集成有问题,可以向客服人员反映,以便厂商及时修复;

<a href="hap://app/com.hybrid.demo.sample">hap跳转</a>

3)浏览器不支持:部分浏览器可能添加类似于广告拦截的功能,这个时候可以试试其他浏览器,只要有一个能跳转,就说明功能是 OK 的;

3.2、HTTPS 不支持

部分 CP 会直接使用如下方式实现跳转:

http://thefatherofsalmon.com/?i=com.xxx.yyy&p=testPages...

这种方式与上述 JS 集成方式本质上一样的,但不能将上述协议改成 HTTPS,也就是说如下方式将无法跳转成功:

https://thefatherofsalmon.com/?i=com.xxx.yyy&p=testPages...

这是因为厂商基本上只对 HTTP 协议做了处理。

另外,不推荐使用这种方式进行跳转,因为存在浏览器将该域名屏蔽的现象,厂商可能在官方 JS 脚本中进行修改以正常拉起。如果 CP 直接使用该域名拉起,则无法触达这部分更新。