当前位置:首页 > 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: '广播内容'}
})

监听存储变化:

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部署到服务器

部署准备 确保本地开发环境已完成项目构建,生成静态文件(H5端为/dist/build/h5目录)。检查服务器环境是否安装Nginx/Apache等Web服务软件,并配置好域名解析。 上传文件 通过…

uniapp swiper禁止滑动

uniapp swiper禁止滑动

禁用 Swiper 滑动的方法 在 UniApp 中,可以通过设置 disableTouch 属性或动态绑定 touchable 属性来禁止 Swiper 组件的滑动行为。 方法一:通过 disa…

uniapp get

uniapp get

uniapp 获取数据的方法 在 uniapp 中获取数据可以通过多种方式实现,包括 API 请求、本地存储、页面传参等。以下是一些常见的方法: API 请求获取数据 使用 uni.request…

介绍uniapp

介绍uniapp

Uniapp 概述 Uniapp 是一款基于 Vue.js 的跨平台开发框架,允许开发者使用一套代码同时生成 iOS、Android、Web 以及小程序应用。其核心优势在于高效开发和代码复用,大幅降低…

uniapp市场库

uniapp市场库

uniapp市场库概述 uniapp市场库通常指与uniapp开发框架相关的插件、模板、组件等资源的集合。这些资源可以帮助开发者快速构建跨平台应用,包括小程序、H5、App等。市场库中的内容由社区开发…

uniapp 跟随键盘

uniapp 跟随键盘

uniapp 键盘弹出时调整布局的方法 在 uniapp 中实现页面内容跟随键盘弹出调整布局,可通过以下方式实现: 监听键盘高度变化 使用 uni.onKeyboardHeightChange 监…