微信公众号使用 wx-open-launch-weapp 开放标签跳转小程序

注意事项

微信开放标签有最低的微信版本要求,以及最低的系统版本要求。

  • 微信版本要求为:7.0.12及以上
  • 系统版本要求为:iOS 10.3及以上、Android 5.0及以上

使用步骤

1. 绑定域名

微信安全域名只能修改绑定3次/每月

登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

2. 引入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)

注:Vue 项目在入口 index.html 文件中引入,且注意 JS 版本,如若之前引入过低版本,wx-open-launch-weapp 标签会无法使用,无法正常跳转小程序

3. 通过config接口注入权限验证配置并申请所需开放标签

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可以在这里更新签名。
});

开放标签使用

属性

名称 必填 默认值 备注
appid 所需跳转的小程序appid,即小程序对应的以wx开头的id
username 所需跳转的小程序原始id,即小程序对应的以gh_开头的id(跳转时,有 appid 会优先使用appid,没有 appid 才会使用username)
path

所需跳转的小程序内页面路径及参数

(假如 path="pages/home/index" 的路径无法实现跳转,可在后面加上.html,如 path="pages/home/index.html")

插槽

名称 必填 默认值 备注
default 跳转按钮模版及样式

事件

名称 冒泡 返回值 备注
ready 标签初始化完毕,可以进行点击操作
launch 用户点击跳转按钮并对确认弹窗进行操作后触发
error { errMsg: string } 用户点击跳转按钮后出现错误

用例(html 页面)

<wx-open-launch-weappid="launch-btn"appid="wx xxxxxxxx"  username="gh_xxxxxxxx"  path="pages/home/index?user=123&action=abc"
>// appid 是所需跳转的小程序appid,即小程序对应的以wx开头的id// username 是所需跳转的小程序原始id,即小程序对应的以gh_开头的id// 跳转时,有 appid 会优先使用appid,没有 appid 才会使用username<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>

使用说明

所有开放标签都能像普通的HTML标签一样在页面中直接使用,不需要再进行额外的处理。

如果所使用的标签允许提供插槽,由于插槽中模版的样式是和页面隔离的,因此需要注意在插槽中定义模版的样式。

插槽模版及样式均需要通过 <template></template> 进行包裹
对于Vue等视图框架,为了避免template标签冲突的问题,可使用 
<script type="text/wxtag-template"></script> 进行代替
,来包裹插槽模版和样式。另外,对于具名插槽还需要通过slot属性声明插槽名称,以上用例中标签插槽中的default插槽为默认插槽,可不声明插槽名称。

对于标签事件,均可通过 event.detail 获得详细信息。如果无特殊说明,下文标签事件说明中的返回值均指代 event.detail 中的内容。

另外,需要注意以下几点:

  1. 页面中与布局和定位相关的样式,如position: fixed; top -100;等,尽量不要写在插槽模版的节点中,请声明在标签或其父节点上;
  2. 对于有CSP要求的页面,需要添加白名单frame-src https://*.qq.com webcompt:,才能在页面中正常使用开放标签。

(以上是官方文档使用说明)通俗点解释就是

html 页面可以用 <template></template> 标签包裹,

Vue 页面要改用 <script type="text/wxtag-template"></script> 包裹

以下是 Vue 页面使用方法

<template><!-- 公众号跳转小程序 --><div class="wx-open-weapp"><wx-open-launch-weappid="launch-btn"username="gh_xxxxxxxx":path="`pages/home/index.html?user=123&action=abc`"@launch="handleLaunchFn"@error="handleErrorFn"><script type="text/wxtag-template"><style>.btn {width: 100%; text-align: center;}</style><div class="btn">跳转小程序</div></script></wx-open-launch-weapp></div>
</template><script>
export default {data () {return {}},mounted () {this.weixinConfig();},methods: {handleLaunchFn (e) {console.log('success', e)},handleErrorFn(e){console.log('fail', e.detail);},weixinConfig() {wx.config({debug: false,appId: res.data.appId,timestamp: res.data.timestamp,nonceStr: res.data.nonceStr,signature: res.data.signature,jsApiList: ["scanQRCode","updateAppMessageShareData","updateTimelineShareData",], // 必填,需要使用的JS接口列表,所有JS接口列表见附录2openTagList:['wx-open-launch-weapp']});wx.ready(function() {console.log('config ready');});wx.error(function(){console.log('config error');})},}
}
</script>
<style lang="less" scoped>
.wx-open-weapp {width: 100vw;height: 20vw;#launch-btn {width: 100%;height: 100%;display: flex;align-items: center;background-color: bisque;border-radius: 50px;font-size: 20px;}
}
</style>

注:

1. <script type="text/wxtag-template"></script> 标签中的内容在浏览器及开发工具中都无法显示,需要真机调试才有效

2. 正常情况下,会出现如下提示,大致意思是 wx-open-launch-weapp 标签未注册

需在 main.js 里面忽略编译自定义元素,否则,它会假设你忘记注册全局组件或者拼错了组件名称,从而抛出一个关于 Unknown custom element 的警告,即如上图所示提示

Vue.config.ignoredElements = ['wx-open-launch-weapp'];

微信公众号跳转小程序 wx-open-launch-weapp (最全指南及坑)相关推荐

  1. 微信公众号跳转小程序方法

    1 公众号需要关联小程序 2 跳转方法: wx.navigateToMiniProgram(Object object)  打开另一个小程序 wx.navigateToMiniProgram({app ...

  2. php 微信公众号跳转小程序,微信公众号菜单添加小程序miniprogrampagepath参数详解php开发公众号-小程序怎么放到公众号菜单里-公众号菜单链接小程序...

    1. 随着微信小程序功能的开发,2. 已经可以跟公众号打通了,3. 主要有两种方式:4. 1)在公众号文章中插入小程序5. 2)在公众号菜单中添加小程序6. 第一种方式,7. 子恒老师在前面的课程已经 ...

  3. 微信公众号跳转小程序流程简单梳理(未完待续)

    功能需求:公众号跳转至小程序 一.准备工作 1.申请测试号 http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo& ...

  4. uniapp 微信公众号跳转小程序的各种坑

    一.引进js http://res2.wx.qq.com/open/js/jweixin-1.6.0.js import wx from "jweixin-module"; let ...

  5. php 微信公众号跳转小程序,微信小程序页面跳转功能

    本文主要介绍微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法,结合具体实例形式总结分析了微信小程序页面跳转及列表item项跳转页面的相关操作技巧,需要的朋友可以参考下. 一.效果图 从 ...

  6. 微信公众号跳转小程序 wx-open-launch-weapp(h5)

    一:在vue3中使用 <wx-open-launch-weapp@launch="onlaunch"@error="onerror"path=" ...

  7. 微信小程序如何跳转到微信公众号文章,小程序如何关联公众号或订阅号

    微信小程序如何跳转到微信公众号文章,小程序如何关联公众号或订阅号 前置条件 公众号最高管理权限(或能与最高权限管理者配合操作) 小程序开发权限或最高管理权限 小程序方面 根据官方资料描述,小程序中展示 ...

  8. vue代码怎么变成小程序_使用vue编写h5公众号跳转小程序的实现代码

    前言:我使用vue编写的h5公众号,实现点击小程序入口,打开小程序,微信官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_App ...

  9. 公众号跳转小程序首次没有数据_小程序如何从“0”开始运营,变成获客神器...

    随着发展,越来越多的企业都感觉到获客难,获客成本高.而小程序的诞生恰恰解决了这些问题.合理的利用小程序的功能,可以帮助商家低成本高效获客,今天我们就来谈谈具体怎么用小程序来拉新引流. 合理的利用小程序 ...

最新文章

  1. 16岁日本神童打造日版「健康码」,追踪用户行动数据抗击疫情
  2. Flashtext:大规模数据清洗的利器
  3. PAT甲级1068 Find More Coins (30 分):[C++题解]DP、背包问题、dp输出方案
  4. ZOJ 2588 Burning Bridges 割边
  5. php生成图片验证码-附五种验证码
  6. 读javascript高级程序设计13-JSON
  7. 使用 .NET CLI 构建项目脚手架
  8. UIWebView与JavaScript的交互
  9. [case29]JDK11的ZGC小试牛刀
  10. 阅读Google的C++代码规范有感
  11. eclipse的自动检查语法错误功能让我有点烦,能不能关掉,或者,只是10秒检查一次。。...
  12. 输入银行卡号匹配银行名称
  13. PXE网刻教程 教如何制作自己的DOS网卡驱动
  14. 烽火路由路虚拟服务器,烽火路由器怎么设置普通专线?
  15. html网页对账单样式,结算对账单.html
  16. 一夜黑白——互联网人的悼念方式
  17. 一文详解PPTC自恢复保险丝的设计应用
  18. 小白后端工程师成长记——项目规划
  19. 制作Mac版的星际争霸II(StarCraft II)
  20. Help Hanzo(区间素数筛)

热门文章

  1. 使用JAVA开发高并发网站
  2. tomcat 400错误
  3. Python爬虫技术
  4. 计算机专业四川省录取分数线,四川省计算机信息职业技术学院2020年招生录取分数线...
  5. 微信小程序uniapp基于Android的大学生社交论坛交流app系统
  6. raid5阵列2块硬盘掉线应该数据恢复还是强制上线
  7. 联通定制版GALAXY S Ⅲ发布 选286套餐0元购机
  8. less命令常用快捷键
  9. 国产操作系统厂商编造假新闻艰难度日
  10. AI能不能取代设计师