微信公众号---H5跳转小程序、拉起微信扫一扫、扫一扫绑定关系逻辑实现
微信公众号使用 wx-open-launch-weapp 开放标签跳转小程
注意事项:
微信开放标签有最低的微信版本要求,以及最低的系统版本要求:微信版本要求为:7.0.12及以上 系统版本要求为:iOS 10.3及以上、Android 5.0及以上
使用步骤
-
绑定域名
微信安全域名只能修改绑定3次/每月
登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 -
引入JS文件
在需要调用JS接口的页面引入如下JS文件:http://res.wx.qq.com/open/js/jweixin-1.6.0.js (支持https)
如需进一步提升服务稳定性,当上述资源不可访问时,可改访问:http://res2.wx.qq.com/open/js/jweixin-1.6.0.js (支持https) -
在js代码中:
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: "XXXXXXXXXXX", // 必填,公众号的唯一标识
timestamp: this.timestamp, // 必填,生成签名的时间戳
nonceStr: this.nonceStr, // 必填,生成签名的随机串
signature: this.signautre, // 必填,签名
jsApiList: [
"onMenuShareTimeline",
"onMenuShareAppMessage",
"checkJsApi",
"scanQRCode"
], // 必填,需要使用的JS接口列表
openTagList:['wx-open-launch-weapp'], // 可选,需要使用的开放标签列表,例如['wx-open-launch-weapp','wx-open-launch-app']
});
wx.ready(function() {
//config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中
});
wx.error(function(res) {
console.log('res',res);
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
用例(html 页面)
<div class="mag-top-160">
<div class="d-flex mag-bottom-30 title lh-40 mx-auto">
<a href="javascript:;" id="scan" class="btn mx-auto w-100 text-white font-16" style="background-color: #F5C242;height: 40px">拉起微信扫一扫</a>
</div>
<div style="position: relative;overflow: hidden;border-right: 1px solid #C1AFA8;border-radius: 5px;">
<span style=" font-size: 16px;color: #563D38;position: absolute;left: 40%;top: 10px;">跳转到小程序</span>
<wx-open-launch-weapp username="gh_XXXXXXXX" id="launch-btn">
<script type="text/wxtag-template">
<button style="width: 1000px; height: 40px; border: solid 1px #C1AFA8;border-radius: 5px; font-size: 16px;color: #563D38;background-color:#fff" >跳转到小程序</button>
</script>
</wx-open-launch-weapp>
</div>
</div>
由于微信公众号跳转到小程序的按钮是微信提供,官方给的按钮样式宽度给的是px,如果是做自适应的话需要像以上代码,给按钮无线大的宽度1000px,按钮的外层div给定位和超出隐藏,最终的是外层div进行自适应调试即可
微信扫一扫跳转分享二维码和绑定关系(强制性关注公众号)
一般来说需要关注公众号获取用户信息保存到数据库才进行绑定一系列操作,所以推荐这个博客的制作关注微信公众号的按钮:https://blog.csdn.net/weixin_38008473/article/details/116238812
拼凑二维码跳转链接,该链接必须进行微信授权访问获取用户的openid从而到数据库获取对应信息。redirect_url跳转地址为encode后的链接。参考官方文档:微信网页授权 jq:encodeURIComponent(redirect_url)