微信公众号H5之微信分享常见错误和问题(小结)


Posted in Javascript onNovember 14, 2019

url转码

官方文档描述: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62

确认url是页面完整的url(请在当前页面alert(location.href.split('#')[0])确认),包括'http(s)?/'部分,以及'?'后面的GET参数部分,但不包括'#'hash后面的部分

即获取url完成地址的方法为

let url = window.location.href.split('#')[0];

如果链接带有中文字符或者特殊符号,前端需要使用encodeURIComponent编码,同时后端需要配合解码

let url = encodeURIComponent(window.location.href.split('#')[0]);

config注入

官网文档描述: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#4

同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,
注意,每次使用jssdk方法前都要先注入配置信息,并且,每使用一次,就要注入config一次.

在vue里,可以写在每次路由变化时

router.beforeEach((to, from, next) => {
  // 获取权限验证配置(签名) 后端返回 getConfig, 注意返回字段的大小写!
  let res
  // 注入配置信息
  wx.config({
   debug: false, // 调试开关
   appId: res.appId, // 必填,公众号的唯一标识
   timestamp:res.timestamp , // 必填,生成签名的时间戳
   nonceStr: res.nonceStr, // 必填,生成签名的随机串
   signature: res.signature,// 必填,签名
   jsApiList: ["updateAppMessageShareData","updateTimelineShareData"] // 必填,需要使用的JS接口列表
  });
  wx.ready(() => {
   // doSoming
  });
})

安全域名

一定要再三确认安全域名等微信公众号配置信息,如分享链接link字段

很多时候的错误并不是前端方法或者sdk等问题,而是后台有没有设置正确的安全域名和白名单等.

wx.updateAppMessageShareData({ 
  title: '', // 分享标题
  desc: '', // 分享描述
  link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  imgUrl: '', // 分享图标
  success: function () {
   // 设置成功
  }
 })

常见错误

参考微信官网文档-附录5

地址: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62

在开发过程遇到

  • invalid signature
  • the permission value is offline verifying
  • permission denied

先参考文档,排除基本因素,还是不行,再查找搜索引擎的答案.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript getElementsByName()的用法说明
Jul 31 Javascript
基于JQuery的asp.net树实现代码
Nov 30 Javascript
javascript仿php的print_r函数输出json数据
Sep 13 Javascript
js键盘事件的keyCode
Jul 29 Javascript
使用typeof方法判断undefined类型
Sep 09 Javascript
详谈JavaScript的闭包及应用
Jan 17 Javascript
Vue2.0权限树组件实现代码
Aug 29 Javascript
React Native中Mobx的使用方法详解
Dec 04 Javascript
JavaScript一元正号运算符示例代码
Jun 30 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
Aug 20 Javascript
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
Jquery让form表单异步提交代码实现
Nov 14 #jQuery
vue之延时刷新实例
Nov 14 #Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
Nov 14 #Javascript
vue自定义正在加载动画的例子
Nov 14 #Javascript
如何在wxml中直接写js代码(wxs)
Nov 14 #Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 #Javascript
Vue SPA 初次进入加载动画实现代码
Nov 14 #Javascript
You might like
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
JS 事件绑定函数代码
2010/04/28 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
Python遍历numpy数组的实例
2018/04/04 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
Python中qutip用法示例详解
2020/10/02 Python
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
成人教育自我鉴定
2013/11/01 职场文书
写好自荐信的几个要点
2013/12/26 职场文书
顶岗实习计划书
2014/01/10 职场文书
关于读书的演讲稿
2014/05/07 职场文书
建筑安全责任书范本
2014/07/24 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
小学运动会开幕词
2016/03/04 职场文书
Nginx 配置 HTTPS的详细过程
2022/05/30 Servers