微信公众号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中面向对象技术的模拟
Sep 25 Javascript
推荐dojo学习笔记
Mar 24 Javascript
Extjs4 类的定义和扩展实例
Jun 28 Javascript
深入理解JavaScript高级之词法作用域和作用域链
Dec 10 Javascript
jquery选择器之属性过滤选择器详解
Jan 27 Javascript
jQuery实现只允许输入数字和小数点的方法
Mar 02 Javascript
原生js实现百叶窗效果及原理介绍
Apr 12 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
Sep 05 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
Nuxt.js踩坑总结分享
Jan 18 Javascript
Vue.js组件间通信方式总结【推荐】
Nov 23 Javascript
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
PHP脚本数据库功能详解(上)
2006/10/09 PHP
实用函数9
2007/11/08 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
理解Javascript_05_原型继承原理
2010/10/13 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
2013/08/07 Javascript
JavaScript window.location对象
2014/11/14 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
vue.js的提示组件
2017/03/02 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
Django获取应用下的所有models的例子
2019/08/30 Python
python爬虫 正则表达式解析
2019/09/28 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
详解Python3中的 input() 函数
2020/03/18 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
冰淇淋店的创业计划书
2014/02/07 职场文书
小学运动会报道稿
2014/10/04 职场文书
庆七一宣传标语
2014/10/08 职场文书
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android