本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!
本文会教你所有可以跳转小程序的方法,帮你解决运营的需求。
内容比较精彩,建议先点赞,收藏,再继续看
微信浏览器跳转小程序
使用wx-open-launch-weapp
标签跳转
- 需要注意的前提条件 更多文档详情
- 已认证的服务号, 登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”
- 已认证的非个人主体的小程序,使用小程序云开发的静态网站托管绑定的域名下的网页,可以使用此标签跳转任意合法合规的小程序
- 在需要调用JS接口的页面引入如下JS文件:res.wx.qq.com/open/js/jwe… (支持https)
- 与使用JS-SDK配置方式相同,所有需要使用开放标签的页面必须先注入配置信息,并通过
openTagList
字段申请所需要的开放标签,否则将无法使用(同一个url仅需调用一次)。开放标签的申请和JS接口的申请相互独立,因此是可以同时申请的。
wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名 jsApiList: [], // 必填,需要使用的JS接口列表 openTagList: [] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app'] });
- 通过ready接口处理成功验证后才能正常使用
wx-open-launch-weapp
- 完成上面的步骤即可使用
wx-open-launch-weapp
,使用方法如下:
<wx-open-launch-weapp
id="launch-btn"
username="gh_xxxxxxxx"
path="pages/home/index?user=123&action=abc"
>
<script type="text/wxtag-template">
<style>.btn { padding: 12px }</style>
<button class="btn">打开小程序</button>
</script>
</wx-open-launch-weapp>
<script>
var btn = document.getElementById('launch-btn');
btn.addEventListener('launch', function (e) {
console.log('success');
});
btn.addEventListener('error', function (e) {
console.log('fail', e.detail);
});
</script>
- 注意事项
- 开放标签属于自定义标签,Vue会给予未知标签的警告,可通过配置
Vue.config.ignoredElements
来忽略Vue对开放标签的检查
Vue.config.ignoredElements = ['wx-open-launch-app', 'wx-open-launch-weapp'];
- 如果所使用的标签允许提供插槽,由于插槽中模版的样式是和页面隔离的,因此需要注意在插槽中定义模版的样式。插槽模版及样式均需要通过
<script type="text/wxtag-template"></script>
进行包裹。另外,对于具名插槽还需要通过slot
属性声明插槽名称,下文标签插槽中的default插槽为默认插槽,可不声明插槽名称。 - 页面中与布局和定位相关的样式,如
position: fixed; top -100;
等,尽量不要写在插槽模版的节点中,请声明在标签或其父节点上; - 对于有CSP要求的页面,需要添加白名单
frame-src https://*.qq.com webcompt:
,才能在页面中正常使用开放标签 - 微信版本要求为:7.0.12及以上。 系统版本要求为:iOS 10.3及以上、Android 5.0及以上。
- 开放标签属于自定义标签,Vue会给予未知标签的警告,可通过配置
- 测试
- 现在测试这个开发标签已经很人性化了,可以直接使用微信开发工具的 公众号网页调试 可以马上看到效果(提前是完成上面的注意前提条件)
使用 URL Scheme
链接跳转小程序
- 获取
URL Scheme
链接方式有2种
方法一: 通过登录公众平台,小程序管理后台「工具」-「生成URL Scheme」入口可以获取打开小程序任意页面的URL Scheme(位置在登录后右上角),可以填写你需要跳转小程序的页面地址及参数,点击生成即可
方法二: 通过小程序api接口服务器端调取来生成【URL Scheme】短地址,配置对应的参数即可 文档详情
- 如何使用
- 生成的短链接,可以设置有效时间的,测试的尽量设置长点
- iOS系统支持识别URL Scheme,可在短信等应用场景中直接通过Scheme跳转小程序
- Android系统不支持直接识别URL Scheme,用户无法通过Scheme正常打开小程序,开发者需要使用H5页面中转,再跳转到Scheme实现打开小程序,为了方便起见,我们统一写一个H5页面,通过脚本跳转我们需要的小程序,如下:
<html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>...</title> </head> <body> <button onclick="bintop()">如果跳转失败,请点击按钮</button> </body> <script> window.onload=function runoob(){ bintop(); } function bintop (e) { window.location.href = "weixin://dl/business/?t=2Uq63aGbY9r" } </script> </html>
- 测试
- 本短链接现在已经支持非微信浏览器及微信浏览器使用,测试非常方便
- 除了这个生成短链接,还有另一个相似的
URL link
,这个短链接可能会比较强,但是前提条件是使用小程序云开发,通过小程序云开发才能生成 文档详情点我
嵌套小程序的H5跳回小程序页面
- 小程序如何嵌套H5
- 在原生页面写
web-view
标签,通过src
属性引入需要的H5链接
- 在原生页面写
- 跳回小程序原生
- web-view网页中可使用JSSDK 1.3.2(建议使用jssdk1.6.0以上的)提供的接口返回小程序页面
- 从微信
7.0.0
开始,可以通过判断userAgent
中包含miniProgram
字样来判断小程序web-view环境 - 判断当前时小程序环境即可使用微信提供的api跳转,如下:更多文档内容
// <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script> // javascript wx.miniProgram.navigateTo({url: '/path/to/page'}) wx.miniProgram.postMessage({ data: 'foo' }) wx.miniProgram.postMessage({ data: {foo: 'bar'} }) wx.miniProgram.getEnv(function(res) { console.log(res.miniprogram) })
- 传参
- 小程序只能单向或者一定条件才能触发参数回传到小程序,不能像平时写js一样,点下事件就能把参数传回原生小程序里面
- 小程序提供
bindmessage
方法接收网页的回传参数,但是需要在一些生命周期才能接收网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。e.detail = { data },data是多次 postMessage 的参数组成的数组
<web-view src='' bindmessage="bindmessage"></web-view> // js部分接收 bindmessage(){}
- 使用
web-view
注意事项
总结
文章已经介绍了,微信环境到非微信环境跳转小程序的方法,只要按照文中内容提示和注意项基本不会有太多问题,因为这些已经是比较稳定的功能,一般都会出现太大的坑,如有其它问题或者想了解小程序的其它内容,可以留言我会准时更新你们想要的文章~
看都看完了,记得点赞哈,谢谢