Vue移动端开发IOS浏览器通过history回退时页面不刷新或未正常发起请求

解决办法

mounted () {
            this.$nextTick(()=>{
                //首页跳转返回 IOS不兼容页面自动刷新问题
                var u = navigator.userAgent,
                    app = navigator.appVersion;
                var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
                var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
                if(isiOS){
                    window.onpageshow = function(event) {
                        if (event.persisted) {
                            window.location.reload()
                        }
                    };
                }
            })
        },

 

补充知识

window.onpageshow

onpageshow 事件在用户浏览网页时触发。

onpageshow 事件类似于 onload 事件,onload 事件在页面第一次加载时触发, onpageshow 事件在每次加载页面时触发,即 onload 事件在页面从浏览器缓存中读取时不触发

为了查看页面是直接从服务器上载入还是从缓存中读取,你可以使用 PageTransitionEvent 对象的 persisted 属性来判断。 如果页面从浏览器的缓存中读取该属性返回 ture,否则返回 false

 

 

 

阅读剩余
THE END