微信公众号H5关闭当前页面

1.问题说明:

由于使用的是微信内置的浏览器所以常见的禁止返回的页面跳转的方式都不管用了,微信就是这么坑,微信就是这么坑,微信就是这么坑
例如:window.location.replace(),尽管你这样子写,但依然可以返回上个页面

2.错误方式

网上有不少小伙伴采用如下的方式:
WeixinJSBridge.call('closeWindow');

首先这种方式具有兼容性问题,必须如下写才能兼容苹果和安装:
document.addEventListener('WeixinJSBridgeReady', function() {
                    WeixinJSBridge.call('closeWindow');
                }, false);
WeixinJSBridge.call('closeWindow');
关闭的不是当前页面,而是整个浏览器,直接让你返回到公众号去

3.正确方式

首先呢我们换个角度思考一下问题,为什么要关闭当前页面呢???
      总之就是不想让用户在回到之前的 页面去了呗!!!
      那么,我们如果在微信的浏览器中禁止用户返回是不是就可以了呢.....
      果然还是我帅,废话不多说,上代码:
      //禁止网页返回上一页
      stopBack() {
        history.pushState(null, null, document.URL);
        window.addEventListener('popstate', function() {
            history.pushState(null, null, document.URL);
        });
      }
      //关闭整个浏览器
      back() {  
        document.addEventListener('WeixinJSBridgeReady', function() {
            WeixinJSBridge.call('closeWindow');
        }, false);
        WeixinJSBridge.call('closeWindow');
      }

 这样就可以实现用户不能左滑右滑返回上一页了,只能点击按钮回到公众号主页消息中了

微信公众号H5页面中集成微信扫一扫功能,需要借助微信提供的JS-SDK。首先,你需要在微信公众平台上申请获取到`wx.config`所需的`jsapi_ticket`和`nonceStr`等参数。然后,按照以下步骤操作: 1. **引入微信JS-SDK**: 在HTML文件头部添加微信JS-SDK的链接: ```html <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js" charset="utf-8"></script> ``` 2. **配置WXSSDK**: 在页面加载完成后,通过JavaScript调用`wx.config`函数,传入配置项,包括URL、权限等信息: ```javascript wx.config({ debug: false, // 开启调试模式,可以查看更详细的错误信息,默认关闭 appId: 'your_app_id', // 公众平台分配给你的AppID timestamp: 'your_timestamp', // 获取当前时间戳 nonceStr: 'your_nonce_str', // 随机字符串 signature: 'your_signature', // 计算后的签名 jsApiList: ['scanQRCode'] // 要使用的JS-SDK接口列表,包括扫一扫 }); ``` 3. **验证并执行扫码功能**: 在`wx.ready`回调中,启用扫一扫功能,并监听事件处理扫码结果: ```javascript wx.ready(() => { wx.scanQRCode({ success(res) { console.log('扫描结果:', res.resultObject); // 根据扫码结果做相应的业务处理 }, fail(err) { console.error('扫码失败:', err.errMsg); } }); }); ``` 4. **处理用户拒绝授权的情况**: 如果用户拒绝授权,可以在`onMenuShareTimeline`或`onMenuShareAppMessage`的`cancel`回调里处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值