h5在ios系统里调用微信jsdk失败
问题:h5项目在微信浏览器里,在ios系统下调用微信jssdk失效,报签名失败;在安卓系统里没有这种问题(打开jsdk debug: true,可快速定位问题)
原因:基于vue spa,在history模式下,ios缓存的是首次进入页面的url,当调用微信jsdk进行注册的时候,location.href虽然获取的是当前页面的url,但获取签名的时候其实还是缓存首次进入页面的url,所以会报错。
wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: appid, // 必填,公众号的唯一标识timestamp: timestamp, // 必填,生成签名的时间戳nonceStr: noncestr, // 必填,生成签名的随机串signature: sign, // 必填,签名,见附录1jsApiList: [],openTagList: []
});
解决方法:
- 一、首次进入页面的时候将当前url赋值给变量(推荐)
// 记录ios初始化url(可放在main.js入口文件获取,否则可能会有不可预测的问题)
if (isIOS() &&(typeof window.entryUrl === 'undefined' || window.entryUrl === '')
) {window.entryUrl = location.href.split('#')[0];
}
// 安卓路由更新的时候 都会更新,所以安卓就在路由里每次都赋值
router.afterEach(() => {// 记录安卓url 用于注册微信jsdkif (!isIOS()) window.entryUrl = location.href.split('#')[0];
});
- 二、调用jsdk的页面进行刷新操作(页面刷新用户体验不好,不推荐)
- 三、ios首次进入页面的时候就注册微信jsdk方法,后面在使用的时候区分ios还是安卓,是ios的情况下直接调用微信方法,不过安卓还是需要每次获取签名注册
- 四、还有一种是通过判断url是否一致更新文档location.assign()方法(有可能回不到上个页面,没试过)
h5在ios系统里调用微信jsdk失败相关推荐
- vue单应用在ios系统中实现微信分享功能
表示是第一次使用vue做单应用显目,也是在逐渐的摸索中~更是各种踩坑,各种填坑,打算写博客么?是因为不想写笔记了,嗯嗯 就是这么简单 进入正题. 刚开始做微信分享的这个功能的时候,脑补了官方文档微信J ...
- ios系统web(微信公众号)开发遇到的问题及解决方案
ios系统web(微信公众号)开发遇到的问题及解决方案 参考文章: (1)ios系统web(微信公众号)开发遇到的问题及解决方案 (2)https://www.cnblogs.com/clj2017/ ...
- m3u8 video ios h5_【H5】iOS系统下的video视频播放完后重新刷新视频
业务需求是H5页面中嵌套video视频,自定义控制视频暂停或者播放,但是对于ios系统下手机,会出现两个问题导致自定义播放事件失效: 1.ios系统下视频自动回放全屏幕播放 2.播放完之后定义在最后一 ...
- iPad/iPhone iOS系统里最屌的13款DAW和应用工作站
我们最喜欢的多轨录音器,制作中心和微型录音室 Si Truss 2014年12月5日 15:31 GMT 毫无疑问,iOS系统的音乐制作应用软件在过去一年突飞猛进. 考虑到它们的特性,苹果的移动设备 ...
- 最新!苹果手机ios系统终于支持微信分身双开了!
大家对微信分身,微信双开这些词都并不陌生,大家都很排斥个人社交账号与工作号混在一起.但是由于苹果手机的封闭性,很多时候不能像安卓手机权限那么开放,所以很多小伙伴会咨询我的iPhone到底怎么实现分身双 ...
- react 调用微信jsdk扫一扫
定义一个点击方法,将以下代码放入方法中,必填项由后端提供 window.wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看 ...
- 微信检测域名防封系统 如何调用微信官方的微信域名检测接口API
背景:最近公司的公众号域名被封了,原因是公司网站被黑后上传了一个不符合微信规范的网页.所以...就进入了微信域名解封的流程. 百度微信域名解封发现很多微信域名检测的网站,还有Api:但是本人做微信公 ...
- 微信检测域名状态系统 如何调用微信官方的微信域名检测接口API
背景:最近公司的公众号域名被封了,原因是公司网站被黑后上传了一个不符合微信规范的网页.所以...就进入了微信域名解封的流程. 百度微信域名解封发现很多微信域名检测的网站,还有Api:但是本人做微信公众 ...
- 在tina或者其他系统里调用buildroot的库文件
在这个 buildroot 里面勾选 BR2_PACKAGE_PYTHON=y 然后 make 一下, 把 output/target/ 里面关于 python2.7 的文件都复制到 target/a ...
最新文章
- C++的STL队列实现栈
- R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用fa.diagram函数可视化斜交旋转因子分析、并解读可视化图形
- VS2017中C++无法将参数1从const char [8] 转换为char[]
- 网络名称空间 实例研究 veth处于不同网络的路由问题
- python编程思维培养_Python教学:编程如何培养学生计算思维-最新教育资料
- 超长的十六进制数转换为八进制
- dockerfile源码安装mysql_docker容器详解五: dockerfile实现tomcat环境以及源码安装mysql...
- Eclipse Git下载问题:Internal error; consult Eclipse error log.
- 【异常】INFO: TopologyManager: EndpointListener changed ...
- emwin读取sd图片_手机内存不够用?这样清理垃圾文件和巧用SD卡扩容硬件存储空间...
- MyEclipse控制台报错:java.lang.OutOfMemoryError: PermGen space
- .NET 函数调用反转
- stm32-beep蜂鸣器-手把手教学(如何使用原理图)
- Cesium--倾斜摄影加载详细攻略
- Linux的进程优先级-邹立巍
- 在matlabnbsp;画箭头
- [Practical.Vim(2012.9)].Drew.Neil.Tip01 学习摘要
- Linux操作系统应用实例_Discuz安装
- 雄关漫道,web 开发
- 又一个北漂离开了,我还想坚持一下!