最近在完成H5跳转小程序需求时,使用到了微信官方退出的开放标签<wx-open-launch-weapp>,来谈一谈使用的心得和不足。
1、适用环境
微信版本要求为:7.0.12及以上。 系统版本要求为:iOS 10.3及以上、Android 5.0及以上
2、接入微信的JS-SDK
按微信JS-SDK要求绑定安全域,并通过config接口注入权限验证配置
wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名 jsApiList: [], // 必填,需要使用的JS接口列表 openTagList: [] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app'] });
这里附录微信官方教程微信开放文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html
最后在贴个官方的适用用例
<wx-open-launch-weapp id="launch-btn" username="gh_xxxxxxxx" path="pages/home/index.html?user=123&action=abc" > <template> <style>.btn { padding: 12px }</style> <button class="btn">打开小程序</button> </template> </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>
在微信开发者工具内打开你的页面如果显示
在微信开发者工具内打开你的页面如果显示
{errMsg: "config:ok”}
就说明你已经介入wx的js-sdk成功了
3.使用开放标签(vue)
贴个最简单的应用
<wx-open-launch-weapp id="launch-weapp1" username="xxxxxx" path="xxxxxx" @launch="onLaunch" @error="onError" > <script type="text/wxtag-template"> <div style="font-size: 14px;margin-top: 10px;text-align: center;">打开小程序</div> </script> </wx-open-launch-weapp>
坑的地方来了: 你会发现在微信开发者工具中没有显示还报错
在微信开发者工具中没有显示是因为微信开发者工具还是无法支持微信开放标签的调试功能,只能在手机上调试并且是在加了微信安全域名的服务器环境下调试( ̄︶ ̄)
报错是在提示你没有在vue中注册过改组件,你只需要在main.js中写上下面一句代码就可以了
Vue.config.ignoredElements = ['wx-open-launch-weapp']
除了这点外还有以下几个坑点
不能用js来模拟点击,有了局限性
样式无法写在外面中,只能在script标签内内链写或者行内样式
无论是内链还是行内 都不支持rem
不会继承样式
如果开发标签内需要使用图片,不能用本地图片,得用外网可以访问的图片,要不然会不显示