安卓微信浏览器js打开文件

JavaScript011

安卓微信浏览器js打开文件,第1张

android安卓手机微信浏览器偶尔也有这样的问题,经过多次调试,发现是微信浏览器缓存了渲染页面,没有重新渲染页面,导致window.onload中JS无法执行。

经过以上分析判断,给出的解决方案就是,如果使用了缓存,自动重载页面。以下是JS代码解决方案:

window.onpageshow = function(event) {

if (event.persisted) {

window.location.reload()

}

}

或者下方代码:

var isPageHide = false

window.addEventListener('pageshow', function () {

if (isPageHide) {

window.location.reload()

}

})

window.addEventListener('pagehide', function () {

isPageHide = true

})

html头部处理缓存信息:

扩展说明:

pageshow:

当一条会话历史记录被执行的时候将会触发页面显示(pageshow)事件。(这包括了后退/前进按钮操作,同时也会在onload 事件触发后初始化页面时触发)

微信的sdk文档要求接入方缓存两个参数:access_token和jsapi_ticket,在一定时间内这两个参数的值是不会过期的,不需要每次请求微信服务器获取。以下示例是通过thinkphp自带的缓存函数S实现。

参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html

用第一步拿到的access_token采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

以下代码片段示例如何缓存生成的access_token和jsapi_ticket(采用最新版ThinkPHP,包括Redis,Memcached等原理都是一样的):