weixin公众号页面返回上一层_拦截微信浏览器左上角返回按钮的方法

在微信公众号开发中,有时需要对浏览器左上角返回按钮进行拦截处理相关的页面逻辑,而并不是让页面直接返回上一页,之前在这个细节点上的一直实现得不是很好。最让人头疼就是返回直接页面就关闭。下次进入用户都找不到入口。下面用vue 来实现进行拦截逻辑处理。看看京东购物公众号效果:

操作思路:

demo 里建立了两个 vue 页面( first 和 two ),第一个页面跳转到到第二个页面。然后在第二个页面弹出一个蒙层,这时点击左上角返回时,并不是返回 first,而是先将蒙层消失,再次点击返回时才是返回上一页;实现效果如下:

1. 在第二个页面 mounted 方法中加入,添加监听返回事件方法。当返回按钮被点击时,这里让弹出的蒙层隐藏;

mounted() {

let that = this;

// 添加返回事件监听

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

that.isShowTestDiv = false;

}, false);

},

2. 监听蒙层,当它显示时,在window.history(历史堆栈)中添加一条记录;

watch: {

isShowTestDiv: function(newVal, oldVal) {

if (newVal === true) {

this.pushHistory();

}

}

}

3. 最后弹出的蒙层如果用户点蒙层上相关操作将蒙层关闭,那么要手动将自己添加的那条记录从 history 中移除,在 vue 中将路由 back 一下即可。

pushHistory() { // 修改history

var state = {

title: "",

url: "/two" // 这个url可以随便填,只是为了不让浏览器显示的url地址发生变化,对页面其实无影响

};

window.history.pushState(state, state.title, state.url);

},

注意:window.addEventListener 添加的事件回调会一直存在,因为 Vue 实例销毁时,window 对象并不会销毁。可以在它的回调里打印,会发现在 two 之外的页面点返回也会进入它的方法。但因为 two 页面内对象数据都已销毁,所以进了此方法也无任何问题。如果不想让其进入,可以用存储一些全局变量加入 if 判断,在 two 页面 destroyed 等相关勾子函数将这个全局变量置成想要状态;或者在全局路由勾子方法中设置相关全局变量也可以。

之前有尝试在 two 的 destroyed 方法内,通过 window.removeEventListener 移除添加的方法,但发现无效果。可能 popstate 是微信内置方法,不能被移除。

本来转载:http://www.cnblogs.com/buerjj/p/7868739.html

标签:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要从外部的H5页面跳转到微信公众号的关注页面,需要进行以下步骤: 1. 确认微信公众号的原始ID 在微信公众号后台,可以在“设置”-“公众号设置”-“帐号详情”中找到公众号的原始ID。 2. 在外部H5页面上添加关注链接 在外部H5页面上添加一个链接,链接的URL为以下格式: ``` https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=[公众号的原始ID]#wechat_redirect ``` 请将[公众号的原始ID]替换为你的微信公众号的原始ID。 例如,如果微信公众号的原始ID为“wx123456789”,则链接的URL为: ``` https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=wx123456789#wechat_redirect ``` 3. 用户点击链接后跳转到微信公众号关注页面 当用户在非微信浏览器上打开外部H5页面,并点击上述链接时,会自动跳转到微信公众号的关注页面。 请注意,用户必须使用微信浏览器打开关注链接才能正常关注公众号。如果用户在非微信浏览器中打开链接,可能无法正常关注公众号。 ### 回答2: 从外部h5非微信浏览器跳转到微信公众号关注页面有以下几种方法: 1. 生成关注链接:在微信公众号平台获取自己的微信公众号关注链接,一般是类似于https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==#wechat_redirect的形式。将这个链接嵌入到外部H5页面中,用户点击链接即可跳转到微信公众号关注页面。 2. 使用微信公众号二维码:在微信公众号平台生成一个关注该公众号的二维码,然后将二维码图片插入到外部H5页面中。用户打开外部H5页面后,扫描二维码即可跳转到微信公众号关注页面。 3. 利用微信JSSDK:通过在外部H5页面中引入微信官方提供的JSSDK,在页面中调用微信的相关API,实现跳转到微信公众号关注页面。具体做法是首先通过wx.config进行配置,然后使用wx.ready监听JSSDK配置完成后的事件,最后使用wx.openUrl指定跳转的URL,将其设置为微信公众号的关注链接。 总之,以上是从外部H5非微信浏览器跳转到微信公众号关注页面的几种方法,其中常用的是生成关注链接和使用微信二维码的方式。具体选择哪种方法,可根据实际需求和开发环境来决定。 ### 回答3: 如果要从外部H5非微信浏览器跳转到微信公众号关注页面,可以通过以下几种办法: 1. 生成个人或公众号的二维码:可以在微信公众号后台或者第三方平台上生成一个关注公众号的二维码。在H5页面上将该二维码展示出来,用户可以使用手机扫描二维码,跳转到微信客户端的公众号关注页面。 2. 使用微信授权登录:在H5页面上使用微信的网页授权登录功能,引导用户使用微信账号登录,并获取到用户的openid。在登录成功后,再通过微信JS-SDK的接口,调用相关功能,弹出关注公众号页面,引导用户关注。 3. 在H5页面中使用微信JS-SDK的接口:可利用微信JS-SDK的相关功能,如打开特定网页、唤起微信扫一扫等。在H5页面上加入一个关注按钮,点击按钮后调用JS-SDK接口,跳转到微信公众号的关注页面。 需要注意的是,以上方法在实际应用中需要满足一些条件,比如需要有正式的微信公众号,需要进行相应的配置,以及需要获取微信JS-SDK的权限等。另外,不同的微信版本和设备可能对跳转行为有一定的限制,因此在操作时要注意兼容性的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值