Skip to main content

2 posts tagged with "wechat"

View All Tags

微信h5(单页应用)不缓存html,缓存js,css等资源

· 2 min read

需求场景

在单页应用中,只有一个html页面,网站的大部分css,js等资源引用都写在这个html中,当更新css,js的随机数然后发布时,由于客户端缓存了html,并不能及时更新。

解决方案

    location / {
try_files $uri $uri/ /index.html;
if ($uri ~* .*\.(?:htm|html)$) {
add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
}
if ($uri ~* .*\.(?:js|css|jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$) {
expires 7d;
}
}

微信环境解决方案

微信环境中html的缓存也是一直遭人诟病的。在普通浏览器中,只需要将html后面也加一个随机数,就可以不缓存html,或者在meta标签中添加标识,又或者如上的nginx配置。而在微信浏览器中这些方法都是无效的。

 if ($uri ~* .*\.(?:htm|html)$) {
add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
add_header Last-Modified $date_gmt;
}

微信h5安卓手机video实现不全屏播放

· 2 min read

需求场景

最近在做移动端项目中,出现video作为背景的场景。然后就开始了踩坑之旅。首先移动端和桌面端都是禁止视频音频的自动播放的,浏览器都不希望骚扰用户。可是需求都是怎么骚扰用户怎么开心,只能通过hack的方式实现。ios在微信h5中可以通过jssdk实现video的自动播放,android就gg了,没法实现,有位老哥的实现思路比较清奇,通过用户业务上的点击动作模拟视频自动播放,参见
微信浏览器中,安卓手机上,video无法自动播放,是为什么呢?,既然android已经无法实现自动播放,只能退而求其次点击播放了。

解决方案

点击播放android又有坑了,ios端只要添加playsinline webkit-playsinline属性即可不全屏播放,android依旧不行,后来还是参考老哥的代码才发现,在安卓微信h5环境中需要添加x5-video-player-type="h5-page"才能不全屏播放,好冷门的属性啊!!!