问题: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失败相关推荐

  1. vue单应用在ios系统中实现微信分享功能

    表示是第一次使用vue做单应用显目,也是在逐渐的摸索中~更是各种踩坑,各种填坑,打算写博客么?是因为不想写笔记了,嗯嗯 就是这么简单 进入正题. 刚开始做微信分享的这个功能的时候,脑补了官方文档微信J ...

  2. ios系统web(微信公众号)开发遇到的问题及解决方案

    ios系统web(微信公众号)开发遇到的问题及解决方案 参考文章: (1)ios系统web(微信公众号)开发遇到的问题及解决方案 (2)https://www.cnblogs.com/clj2017/ ...

  3. m3u8 video ios h5_【H5】iOS系统下的video视频播放完后重新刷新视频

    业务需求是H5页面中嵌套video视频,自定义控制视频暂停或者播放,但是对于ios系统下手机,会出现两个问题导致自定义播放事件失效: 1.ios系统下视频自动回放全屏幕播放 2.播放完之后定义在最后一 ...

  4. iPad/iPhone iOS系统里最屌的13款DAW和应用工作站

    我们最喜欢的多轨录音器,制作中心和微型录音室 Si Truss  2014年12月5日 15:31 GMT 毫无疑问,iOS系统的音乐制作应用软件在过去一年突飞猛进. 考虑到它们的特性,苹果的移动设备 ...

  5. 最新!苹果手机ios系统终于支持微信分身双开了!

    大家对微信分身,微信双开这些词都并不陌生,大家都很排斥个人社交账号与工作号混在一起.但是由于苹果手机的封闭性,很多时候不能像安卓手机权限那么开放,所以很多小伙伴会咨询我的iPhone到底怎么实现分身双 ...

  6. react 调用微信jsdk扫一扫

    定义一个点击方法,将以下代码放入方法中,必填项由后端提供 window.wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看 ...

  7. 微信检测域名防封系统 如何调用微信官方的微信域名检测接口API

     背景:最近公司的公众号域名被封了,原因是公司网站被黑后上传了一个不符合微信规范的网页.所以...就进入了微信域名解封的流程. 百度微信域名解封发现很多微信域名检测的网站,还有Api:但是本人做微信公 ...

  8. 微信检测域名状态系统 如何调用微信官方的微信域名检测接口API

    背景:最近公司的公众号域名被封了,原因是公司网站被黑后上传了一个不符合微信规范的网页.所以...就进入了微信域名解封的流程. 百度微信域名解封发现很多微信域名检测的网站,还有Api:但是本人做微信公众 ...

  9. 在tina或者其他系统里调用buildroot的库文件

    在这个 buildroot 里面勾选 BR2_PACKAGE_PYTHON=y 然后 make 一下, 把 output/target/ 里面关于 python2.7 的文件都复制到 target/a ...

最新文章

  1. C++的STL队列实现栈
  2. R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用fa.diagram函数可视化斜交旋转因子分析、并解读可视化图形
  3. VS2017中C++无法将参数1从const char [8] 转换为char[]
  4. 网络名称空间 实例研究 veth处于不同网络的路由问题
  5. python编程思维培养_Python教学:编程如何培养学生计算思维-最新教育资料
  6. 超长的十六进制数转换为八进制
  7. dockerfile源码安装mysql_docker容器详解五: dockerfile实现tomcat环境以及源码安装mysql...
  8. Eclipse Git下载问题:Internal error; consult Eclipse error log.
  9. 【异常】INFO: TopologyManager: EndpointListener changed ...
  10. emwin读取sd图片_手机内存不够用?这样清理垃圾文件和巧用SD卡扩容硬件存储空间...
  11. MyEclipse控制台报错:java.lang.OutOfMemoryError: PermGen space
  12. .NET 函数调用反转
  13. stm32-beep蜂鸣器-手把手教学(如何使用原理图)
  14. Cesium--倾斜摄影加载详细攻略
  15. Linux的进程优先级-邹立巍
  16. 在matlabnbsp;画箭头
  17. [Practical.Vim(2012.9)].Drew.Neil.Tip01 学习摘要
  18. Linux操作系统应用实例_Discuz安装
  19. 雄关漫道,web 开发
  20. 又一个北漂离开了,我还想坚持一下!

热门文章

  1. 企业内部流程运转受阻?免费又高效不愧是它
  2. 四川省内江市启动公共视频监控三期建设
  3. 福州大学866信号与系统初试经验分享
  4. android raw相机,最高大上的安卓相机App?专业拍摄ProShot
  5. HCIP(四)---BMA,NBMA网络类型
  6. 实现“快准狠”交付——小米HR研发团队敏捷实践
  7. 网络的形成-从原始部落到现代化世界
  8. 新奥创:多APP场景端到端的技术体系探索与突破
  9. 统计指标 --- 集中趋势
  10. 程序员在上海税前12000的工资,真实发到手能拿到多少?