移动端的bug

监听微信浏览器的回退事件

2019-12-04  本文已影响0人  小猪_9b2e

浏览器回退事件的监听:

当前所进行的处理是点击返回时关闭页面

同时对ios微信端popstate自动触发的bug做了处理

代码如下:

/**

 * 浏览器回退事件监听

 */

var listenerBackHandler = {

    param: {

        isRun: false, //防止微信返回立即执行popstate事件

    },

    listenerBack: function () {

        var state = {

            title: "title",

            url: "#"

        };

        window.history.pushState(state, "title", "#");

        window.addEventListener("popstate", function (e) {

            if (listenerBackHandler.param.isRun) {

                WeixinJSBridge.call('closeWindow');

            }

        }, false);

    },

    //初始化返回事件

    initBack: function () {

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

            listenerBackHandler.param.isRun = false;

            setTimeout(function () { listenerBackHandler.param.isRun = true; }, 100); //延迟1秒 防止微信返回立即执行popstate事件

            listenerBackHandler.listenerBack();

        });

    }

}

listenerBackHandler.initBack(); 

针对IOS微信端popstate自动触发的解决是用延迟100毫秒来做的处理

上一篇下一篇

猜你喜欢

热点阅读