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 直接使用该域名拉起,则无法触达这部分更新。