vue2公众号跳转小程序 wx-open-launch-weapp 超完整流程

小程序 0
  1. 根据微信网页开发 / 开放标签说明文档 (qq.com)看开放标签 wx-open-launch-weapp 说明,从上往下完整的看到2.1
  2. 根据签名算法见JS-SDK说明文档的附录,所有开放标签列表见文末的附录1 概述 | 微信开放文档 获取wx.config 中相关签名等配置参数(后端通过接口传给我们)
  3. 开发者调试需要在真机上调试(手机等),本地授权跳转小程序是不起作用的
  4. 在期间出现什么问题一定要和后端及时沟通,如invalid signature签名错误 问题
  5. 附上完整代码:

router路由界面:(在这加的获取url 是为了兼容苹果手机)

router.beforeEach((to, from, next) => {  // alert('路由拦截器beforeEach一进入的url'+','+ window.location.href)  /********************* 公众号跳转小程序 配置  *************************/  if(window.entryUrl===undefined){    window.entryUrl= window.location.href.split('#')[0]  }  if(window.location.href){    sessionStorage.weappUrl = window.location.href.split('#')[0]  } /********************* 公众号跳转小程序 配置  *************************/})

要添加跳转的小程序的页面:

<template>        <div class="medical_one">          <wx-open-launch-weapp          id="launch-btn"          appid="小程序id"          path="跳转到小程序的页面路径(后面可拼接参数)"          @error="handleErrorFn"          @launch="handleLaunchFn"        >          <script type="text/wxtag-template">            <style>.btn { padding: 23px 16px; background-color: red;  }</style>            <div class="btn">              病案小程序            </div>          </script>        </wx-open-launch-weapp>    <!--上面 开放标签里自带的样式不符合我的需求,所以我自己加了样式,将开放标签里自带的样式用透明色隐藏了起来-->          <wx-open-launch-weapp          id="launch-btn"          appid="小程序id"          path="跳转到小程序的页面路径(后面可拼接参数)"          @error="handleErrorFn"          @launch="handleLaunchFn"        >          <script type="text/wxtag-template">            <style>.btn {  padding: 23px 16px; background-color: transparent; color: transparent;  }</style>            <div class="btn">              病案小程序            </div>          </script>        </wx-open-launch-weapp>        </div>    <!--上面 开放标签里自带的样式不符合我的需求,所以我自己加了样式,将开放标签里自带的样式用透明色隐藏了起来,通过.medical_one 用定位定位我想要的位置上 -->        <div class="medical_one">          <wx-open-launch-weapp          id="launch-btn"          appid="小程序id"          path="跳转到小程序的页面路径(后面可拼接参数)"          @error="handleErrorFn"          @launch="handleLaunchFn"        >          <script type="text/wxtag-template">            <style>.btn {  padding: 23px 16px; background-color: transparent; color: transparent;  }</style>            <div class="btn">              病案小程序            </div>          </script>        </wx-open-launch-weapp>        </div></template><script>const { callConfigSignApi } = require("../flowModulation/service/SyncRequest"); //引入获取签名等配置的接口export default {  data() {    return {      SignUrl: '' //获取签名接口的入参url    }  },    methods: {    handleErrorFn(e) {       console.log('fail', e.detail);    },    handleLaunchFn(e) {       console.log('success', e)    },      // 从公众号跳转小程序 初始化配置    initData () {      // alert('走点击调接口方法callConfigSignApi'+','+ window.location.href)      let url = ''      if(window.entryUrl){        url = window.entryUrl      }else if(sessionStorage.weappUrl){        url = sessionStorage.weappUrl      }else{        url = window.location.href.split('#')[0]      }      this.SignUrl = url      console.log('获取当前页面url方法',this.SignUrl)      // alert('this.SignUrl跳转'+','+ this.SignUrl)      this.getConfigSign()        },    async getConfigSign(){      let code = '';      const res = await Promise.all([        callConfigSignApi(this.SignUrl,code), //和后端对接 接口需要的参数      ]);      // let aa = JSON.stringify(res)      // alert('接口出参'+':'+ aa)      console.log("callConfigSignApi返回", res);      if (res[0].data.code == 200) {        const { nonceStr, signature, timestamp} = res[0].data.data        wx.config({          debug: false, //   debug: true 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印//------  debug: true, 开发者记得打开true可调试哦,在真机上会出现弹窗,提示是否授权成功 -----          appId: '公众号的appid', // 必填,公众号的唯一标识          timestamp: timestamp , // 必填,生成签名的时间戳          nonceStr: nonceStr, // 必填,生成签名的随机串          signature: signature,// 必填,签名          jsApiList: [callConfigSignApi,'wx-open-launch-weapp', 'chooseImage', 'previewImage'], // 必填,需要使用的JS接口列表 (我其实不是很懂这代表的含义)          // openTagList: ['wx-open-launch-app'] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app'] 这个是app的,小程序是wx-open-launch-weapp          openTagList: ['wx-open-launch-weapp']        });        // alert('配置下面的'+','+timestamp)        wx.ready(function() {          // alert('config ready')          console.log('config ready');        });        wx.error(function(){          // alert('config error')          console.log('config error');        })      }    } }, mounted() {    //初始化    this.initData()  //里封装的方法一定要按照我这样分开写哦,要不然可能会出现提示签名错误 }}</script>

要添加跳转的小程序的页面:

出现的常见错误(等我有时间再补充的更完整吧)

  1. invalid signature签名错误
  2. 点击不生效问题
  3. 样式问题

微信小程序学习实录8:H5网页跳转小程序(微信开放标签、wx-open-launch-weapp按钮不显示、noPermissionJsApi)_wx-open-launch-weapp 不显示-CSDN博客

wx-open-launch-weapp 按钮为什么不显示? | 微信开放社区 (qq.com)

wx-open-launch-weapp 样式问题 - 文章教程 - 文江博客 (wenjiangs.com)

html 使用 wx-open-launch-weapp 跳转小程序_写一个html页面启动小程序-CSDN博客

公众号跳转小程序 wx-open-launch-weapp_微信公众号跳小程序-CSDN博客

 微信公众号跳转小程序 wx-open-launch-weapp (最全指南及坑)微信开放标签wx-open-launch-app点击无反应?任何弹框都唤醒不起来 | 微信开放社区

https://www.cnblogs.com/Can-daydayup/p/15404964.html?utm_source=tuicool&utm_medium=referral

Vue单页面应用下IOS签名失败_window.entryurl-CSDN博客

微信公众号跳转小程序 wx-open-launch-weapp,在vue3+vite中使用 (多个问题集锦) - 知乎

也许您对下面的内容还感兴趣: