当前位置:   article > 正文

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

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

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

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

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

  1. <template>
  2. <div class="medical_one">
  3. <wx-open-launch-weapp
  4. id="launch-btn"
  5. appid="小程序id"
  6. path="跳转到小程序的页面路径(后面可拼接参数)"
  7. @error="handleErrorFn"
  8. @launch="handleLaunchFn"
  9. >
  10. <script type="text/wxtag-template">
  11. <style>.btn { padding: 23px 16px; background-color: red; }</style>
  12. <div class="btn">
  13. 病案小程序
  14. </div>
  15. </script>
  16. </wx-open-launch-weapp>
  17. <!--上面 开放标签里自带的样式不符合我的需求,所以我自己加了样式,将开放标签里自带的样式用透明色隐藏了起来-->
  18. <wx-open-launch-weapp
  19. id="launch-btn"
  20. appid="小程序id"
  21. path="跳转到小程序的页面路径(后面可拼接参数)"
  22. @error="handleErrorFn"
  23. @launch="handleLaunchFn"
  24. >
  25. <script type="text/wxtag-template">
  26. <style>.btn { padding: 23px 16px; background-color: transparent; color: transparent; }</style>
  27. <div class="btn">
  28. 病案小程序
  29. </div>
  30. </script>
  31. </wx-open-launch-weapp>
  32. </div>
  33. <!--上面 开放标签里自带的样式不符合我的需求,所以我自己加了样式,将开放标签里自带的样式用透明色隐藏了起来,通过.medical_one 用定位定位我想要的位置上 -->
  34. <div class="medical_one">
  35. <wx-open-launch-weapp
  36. id="launch-btn"
  37. appid="小程序id"
  38. path="跳转到小程序的页面路径(后面可拼接参数)"
  39. @error="handleErrorFn"
  40. @launch="handleLaunchFn"
  41. >
  42. <script type="text/wxtag-template">
  43. <style>.btn { padding: 23px 16px; background-color: transparent; color: transparent; }</style>
  44. <div class="btn">
  45. 病案小程序
  46. </div>
  47. </script>
  48. </wx-open-launch-weapp>
  49. </div>
  50. </template>
  51. <script>
  52. const { callConfigSignApi } = require("../flowModulation/service/SyncRequest"); //引入获取签名等配置的接口
  53. export default {
  54. data() {
  55. return {
  56. SignUrl: '' //获取签名接口的入参url
  57. }
  58. },
  59. methods: {
  60. handleErrorFn(e) {
  61. console.log('fail', e.detail);
  62. },
  63. handleLaunchFn(e) {
  64. console.log('success', e)
  65. },
  66. // 从公众号跳转小程序 初始化配置
  67. initData () {
  68. // alert('走点击调接口方法callConfigSignApi'+','+ window.location.href)
  69. let url = ''
  70. if(window.entryUrl){
  71. url = window.entryUrl
  72. }else if(sessionStorage.weappUrl){
  73. url = sessionStorage.weappUrl
  74. }else{
  75. url = window.location.href.split('#')[0]
  76. }
  77. this.SignUrl = url
  78. console.log('获取当前页面url方法',this.SignUrl)
  79. // alert('this.SignUrl跳转'+','+ this.SignUrl)
  80. this.getConfigSign()
  81. },
  82. async getConfigSign(){
  83. let code = '';
  84. const res = await Promise.all([
  85. callConfigSignApi(this.SignUrl,code), //和后端对接 接口需要的参数
  86. ]);
  87. // let aa = JSON.stringify(res)
  88. // alert('接口出参'+':'+ aa)
  89. console.log("callConfigSignApi返回", res);
  90. if (res[0].data.code == 200) {
  91. const { nonceStr, signature, timestamp} = res[0].data.data
  92. wx.config({
  93. debug: false, // debug: true 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
  94. //------ debug: true, 开发者记得打开true可调试哦,在真机上会出现弹窗,提示是否授权成功 -----
  95. appId: '公众号的appid', // 必填,公众号的唯一标识
  96. timestamp: timestamp , // 必填,生成签名的时间戳
  97. nonceStr: nonceStr, // 必填,生成签名的随机串
  98. signature: signature,// 必填,签名
  99. jsApiList: [callConfigSignApi,'wx-open-launch-weapp', 'chooseImage', 'previewImage'], // 必填,需要使用的JS接口列表 (我其实不是很懂这代表的含义)
  100. // openTagList: ['wx-open-launch-app'] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app'] 这个是app的,小程序是wx-open-launch-weapp
  101. openTagList: ['wx-open-launch-weapp']
  102. });
  103. // alert('配置下面的'+','+timestamp)
  104. wx.ready(function() {
  105. // alert('config ready')
  106. console.log('config ready');
  107. });
  108. wx.error(function(){
  109. // alert('config error')
  110. console.log('config error');
  111. })
  112. }
  113. }
  114. },
  115. mounted() {
  116. //初始化
  117. this.initData() //里封装的方法一定要按照我这样分开写哦,要不然可能会出现提示签名错误
  118. }
  119. }
  120. </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中使用 (多个问题集锦) - 知乎

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/589696
推荐阅读
相关标签
  

闽ICP备14008679号