微信公众号h5返回上一页不执行生命周期

在微信上打开浏览器时碰到了 用户跳转一个页面之后按返回按钮,没有触发初始化的js代码的问题,记录一下解决办法。

1.原生写法:

function pushHistory() {  
  var state = {  
    title: "title",  
    url: "#"  
  };  
  window.history.pushState(state, "title", "#xx");  
}
pushHistory();
window.addEventListener("popstate", function(e) {  
  console.log(e);
  alert("我监听到了浏览器的返回按钮事件啦");//根据自己的需求实现自己的功能  
}, false);

2.vue可以使用 keep-alive配合activated

首先,我们需要使用router.meta属性,修改需要缓存的组件路由如下

// keepAlive和isback这两个很重要!

{
path: '/usermanage',

name: 'usermanage',

meta: {
keepAlive: true, //该字段表示该页面需要缓存

isBack: false, //用于判断上一个页面是哪个

title: '人员管理'

},

component: resolve => require(['@/views/userManage/userManage'], resolve) // 路由懒加载

},

然后修改需要缓存的组件中的代码(只放重点部分):

export default {
name: 'currentName',

data() {
return {
isFirstEnte
在 UniApp 开发的微信公众号 H5 页面中实现跳转到小程序的功能,需要借助微信提供的JS-SDK,特别是`wx.navigateToMiniProgram`或`wx.redirectToMiniProgram`这两个API。以下是步骤: 1. **引入微信JSSDK**: 首先,在公众号后台配置好微信开发者工具,获取到appID,然后在uni-app项目的pages中引入微信的JSBridge库,例如在index.html: ```html <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js" type="text/javascript"></script> ``` 2. **初始化JS-SDK**: 在相应的H5页面加载完成后,调用微信的`onLoad`生命周期函数,并初始化JS-SDK: ```javascript Page({ onLoad() { wx.config({ debug: false, // 是否开启调试模式,false生产环境 appId: 'your_app_id', // 必填,公众号的唯一标识 timestamp: '', // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '', // 必填,签名 jsApiList: ['checkJsApi', 'navigateToMiniProgram'] // 必填,需要使用的JS接口列表 }); wx.ready(function () { // 小程序路径,可以是一个小程序内的页面路径,也可以是统一下发的链接 let path = 'page/path/in/your/miniprogram'; // 跳转到小程序 wx.navigateToMiniProgram({ path: path, success: function(res) { console.log('跳转成功'); }, fail: function(err) { console.error('跳转失败:', err); } }); }); } }); ``` 3. **检查并授权**:在使用某些特定接口之前,需要先检查用户是否已授权,例如`wx.checkJsApi`。 记得替换上述代码中的`your_app_id`、`timestamp`、`nonceStr`和`signature`为实际获取的值。在实际项目中,这些值通常由后端提供或者通过前端获取签名函数动态生成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值