当前位置:首页 > uni-app

uniapp广播

2026-03-04 21:00:46uni-app

Uniapp 广播功能实现方法

Uniapp 本身没有内置的广播功能,但可以通过以下几种方式实现类似广播的效果:

全局事件总线

main.js 中创建一个 Vue 实例作为事件总线:

import Vue from 'vue'
export const EventBus = new Vue()

在需要发送广播的页面:

import { EventBus } from '@/main.js'
EventBus.$emit('eventName', data)

在接收广播的页面:

import { EventBus } from '@/main.js'
EventBus.$on('eventName', (data) => {
  console.log('收到广播', data)
})

使用 uni.$emit 和 uni.$on

Uniapp 提供了全局的自定义事件系统:

发送广播:

uni.$emit('eventName', {msg: '广播消息'})

接收广播:

uni.$on('eventName', function(data) {
  console.log('收到广播', data.msg)
})

使用本地存储

可以通过 uni.setStorageuni.onStorageChange 实现简单的广播:

设置存储:

uni.setStorage({
  key: 'broadcast',
  data: {type: 'message', content: '广播内容'}
})

监听存储变化:

uniapp广播

uni.onStorageChange((res) => {
  console.log('收到广播', res)
})

注意事项

  • 全局事件总线方式适合组件间通信,但要注意及时移除监听,避免内存泄漏
  • uni.$emit/uni.$on 方式适合页面间通信,但要注意事件名的唯一性
  • 本地存储方式适合简单场景,但性能不如事件机制
  • 广播接收方需要在页面加载时就注册监听器

跨端兼容性

  • 所有方法在 H5、小程序和 App 端都可用
  • 小程序端使用 storage 方式时,onStorageChange 需要基础库 2.8.0 以上支持
  • App 端使用 storage 方式时,需要监听 plus.storage 的变化

标签: uniapp
分享给朋友:

相关文章

uniapp旋转横屏

uniapp旋转横屏

实现横屏模式的方法 在UniApp中实现横屏模式,可以通过配置页面方向或使用CSS旋转实现。以下是两种常见方法: 修改manifest.json配置 在项目的manifest.json文件中,找到"…

uniapp如何调用

uniapp如何调用

uniapp调用方法 uniapp提供了多种调用方式,包括API调用、组件调用和插件调用。具体方法如下: API调用 uniapp内置了大量API,可以通过全局对象uni直接调用。例如调用网络请求A…

uniapp 推送

uniapp 推送

uniapp 推送实现方法 uniapp 推送功能可以通过多种方式实现,包括使用第三方推送服务、原生插件或 uni-push 服务。以下是几种常见的实现方法: 使用 uni-push 服务 uni…

uniapp删除

uniapp删除

uniapp删除数据的方法 在uniapp中删除数据通常涉及前端操作和与后端API的交互。以下是常见的几种删除数据的方式: 前端数据删除 使用splice方法从数组中删除指定元素: let lis…

uniapp怎么使用

uniapp怎么使用

uniapp 的基本使用 安装开发工具 推荐使用 HBuilderX 作为开发工具,它是官方提供的 IDE,内置了 uniapp 的开发环境。下载地址:HBuilderX 官网。 创建项目 在…

uniapp推送消息

uniapp推送消息

uniapp推送消息的实现方法 使用uni-push服务 uniapp官方提供了uni-push推送服务,支持iOS和Android平台。需要在manifest.json中配置推送模块,并在DClou…