博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信web开发遇到的坑
阅读量:7045 次
发布时间:2019-06-28

本文共 1459 字,大约阅读时间需要 4 分钟。

缓存控制

http接口数据缓存

一直在做spa,应用内的页面切换没有接口数据缓存的问题,而从应用内切换到外部再回来的话,如果接口地址参数都不变,那么之前请求过的接口,会使用上一次请求拿到的数据,抓包工具显示请求根本没有发生。

解决方法就是:改改参数,比如加个时间戳。

js/css/img

对于静态资源可以更新文件名(如:文件名加hash),配合gulp,webpack等打包工具都可以实现。

index

尝试过在html中添加http-equiv的meta标签来控制response header,但在大部分安卓机上无效。

解决办法:在html标签上添加一个不存在的manifest,缺点是会造成一个额外的404请求

 

缓存控制涉及到http协议的知识,涉及catch control与三种header的用法。

音频

自动播放

Android:没问题(版本更新后可能会有自动播放失效的问题,怀疑与jssdk的初始化有关)。

iOS:由于苹果的限制必须配合微信接口做处理。

  • 如果audio标签和audio资源都是静态的,那么只需要在wx.ready中调用play方法。如果是延迟的自动播放,那么你可能需要在页面加载完成后在ready中调用一次load

    wx.ready(()=>{    audio.play();    // 延迟自动播放    // audio.load();})
  • 如果是静态的audio标签,而资源路径是通过接口拿到的,那么就需要把设置资源路径的操作也放到wx.ready

    wx.ready(()=>{    audio.src = YOUR_AUDIO_URL;    audio.play();})
  • 如果audio标签是页面加载后动态创建的,那么iOS版的微信想要实现自动播放貌似是不可能的,至少我是没有找到明确的方法,在此虚心求教
  • 对iOS音频自动播放的通用解决办法是把音频播放放在用户行为回调中,例如:给window添加一个touchstart的eventListener,在callBack中play

    window.addEventListener('touchstart', function autoPlay() {  audioElm.play();  window.removeEventListener('touchstart', autoPlay, true)}, true)

wxjssdk

接口权限的获取

SPA下路由模式只能用hash,config的页面URL不能携带hash部分

接口调用间隔

资源相关(图片录音)的接口,调用时需要有一个最小间隔时间,否则会调用失败,而且不报错,目前我是给了一个100ms的间隔,除了在首次录音(唤起权限弹框)时会偶尔返回'too short',其他接口都能正常运行。

分享

iOS的link不能包含未转码的特殊字符,在某些机型上会造成分享失败。

出现过success回调无法使用HTTPRequest的情况,延迟100ms即可。


二维码识别问题

  • 二维码图片必须放在img标签里才能识别
  • 一屏内不能出现两个二维码
  • iOS 6.2.2中二维码的识别位置要比实际位置高64px(标题栏的高度),要在图片底部加padding。iOS 6.2.4中已修复
  • viewport meta标签的设置,会影响二维码识别

我试出来的

  • iOS微信客户端内,如果页面链接中含有未转码的特殊字符,可能会导致二维码无法识别

以上

如果遇到新的问题会继续更新

转载地址:http://dahal.baihongyu.com/

你可能感兴趣的文章
微服务通信策略
查看>>
InfoQ 趋势报告:技术文化\u0026方法2019年实践状况
查看>>
Entity Framework Core 2.0的槽点
查看>>
甲骨文解散Java Mission Control团队事件新进展
查看>>
书评:实战Apache JMeter
查看>>
2014年基于Raspberry Pi的5大项目
查看>>
[deviceone开发]-openPage的动画效果示例
查看>>
EAGLEPCB7.7 gerber文件导出
查看>>
苏宁11.11:苏宁易购移动端的架构优化实践
查看>>
GitHub推出Scientist,帮助开发者重构关键路径代码
查看>>
力荐!这些工具可以帮你写出干净的代码
查看>>
优化typecho性能,使typecho可以流畅支持200w posts
查看>>
UITableView基础[ 3 ] 使用UIRefreshControl实现下拉刷新功能
查看>>
el-admin v1.7 发布,后台管理系统
查看>>
JFinal 开发的内容管理系统 JFinalCMS 1.0 发布
查看>>
PHP7 的抽象语法树(AST)带来的变化
查看>>
如何在Mac 终端升级ruby版本
查看>>
国际编程教育权威科学家菲利普.米勒教授来访 SegmentFault 总部
查看>>
API 标准化成为技术团队面临的最大挑战
查看>>
CSS 小三角
查看>>