小程序this.getOpenerEventChannel()当前页面与navigateTo页面之间数据通信

this.getOpenerEventChannel() 是微信小程序中获取页面打开它的页面事件通道的方法。但是,这个方法只在页面是被wx.navigateTo打开的情况下才能使用。如果页面是通过其他方式打开的,比如wx.redirectTo,那么就无法使用这个方法。

解决方案:

1、如果你需要在页面间通信,可以考虑使用wx.navigateTo 来打开新页面,并使用this.getOpenerEventChannel()来获取事件通道。

2、如果你需要在页面关闭时通知打开它的页面,可以考虑使用全局变量或者wx.setStorage/wx.getStorage来实现。

3、如果页面是通过wx.redirectTo或wx.switchTab打开的,你可以考虑使用wx.navigateBack来回退页面,并在回退前通过事件或者全局变量进行通信。

以下是一个使用wx.navigateTo和getOpenerEventChannel的简单例子:

页面 A(opener):

javascript 复制代码
// 打开页面 B
wx.navigateTo({
  url: 'pageB',
  success: function(res) {
    // 获取打开页面的事件通道
    var channel = res.eventChannel;
    // 监听页面 B 触发的事件
    channel.on('someEvent', function(data) {
      console.log(data);
    });
  }
});

页面 B(opened page):

javascript 复制代码
// 获取打开页面的事件通道
var channel = this.getOpenerEventChannel();
// 向打开页面发送事件
channel.emit('someEvent', { data: 'hello from page B' });
// 关闭当前页面,返回上一页面 A
wx.navigateBack();

注意:在实际使用中,请确保页面 A 已经打开,并且页面 B 是通过wx.navigateTo打开的,否则this.getOpenerEventChannel()可能无法正常工作。

相关推荐
说私域9 小时前
社群招募文案的核心构建要点与工具赋能路径——基于AI智能名片链动2+1模式商城小程序的实践研究
人工智能·小程序·私域运营
_ZeroKing11 小时前
自制智能门锁:NFC 刷卡 + 小程序远程开锁(完整实战记录)
嵌入式硬件·小程序·notepad++·arduino
郑州光合科技余经理11 小时前
可独立部署的Java同城O2O系统架构:技术落地
java·开发语言·前端·后端·小程序·系统架构·uni-app
阿斌_bingyu70913 小时前
眼镜店AR在线试戴小程序技术解决方案
小程序·ar
计算机毕设指导613 小时前
基于微信小程序的智能停车场管理系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
2501_9339072114 小时前
如何选择西安优质小程序开发服务与本凡码农合作?
科技·微信小程序·小程序
说私域14 小时前
破局互联网产品开发困境:开源AI智能名片链动2+1模式S2B2C商城小程序的实践与启示
人工智能·小程序·开源·私域运营
宁夏雨科网1 天前
文具办公用品小程序商城,开发一个难吗
小程序·商城小程序·文具小程序·文具商城
说私域1 天前
开源链动2+1模式商城小程序在深度分销数字化转型中的应用研究
人工智能·小程序·开源·流量运营·私域运营
咖啡の猫2 天前
微信小程序案例 - 自定义 tabBar
微信小程序·小程序·notepad++