uniapp 系统广播自定义广播插件 Ba-Broadcast

Posted 三杯五岳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp 系统广播自定义广播插件 Ba-Broadcast相关的知识,希望对你有一定的参考价值。

简介(下载地址

Ba-Broadcast 是一款可监听系统广播的uniapp插件,如息屏、亮屏、声音、电量等等。支持监听系统广播;支持自定义广播;支持发送广播。

  • 支持系统广播(支持设备支持的所有广播配置,支持系统参数原路返回)
  • 支持自定义广播(参数可随意自定义,可多个)
  • 支持发送广播
  • 如有特殊,可联系作者定制

截图展示

使用方法

引用

script 中引入组件

	const broadcast = uni.requireNativePlugin('Ba-Broadcast')

示例

可在页面 script 中调用(示例参考,可根据自己业务和调用方法自行修改)

<script>
	const broadcast = uni.requireNativePlugin('Ba-Broadcast')
	export default 
		data() 
			return 
				msgList: [],
				actions: [
					'android.intent.action.SCREEN_OFF', //关闭屏幕
					'android.intent.action.SCREEN_ON', //打开屏幕
					'android.intent.action.USER_PRESENT', //解锁屏幕
					'com.ba.temp.action', //自定义广播
				],
				action: 'com.ba.temp.action',
				msg: '测试参数'
			
		,
		methods: 
			register()  //注册监听
				broadcast.register(
					actions: this.actions
				, res => 
					console.log(res);
					let msg = '';
					if (res.msg) 
						msg = res.msg;
					
					if (res.action)  //判断是否是接收到广播消息
						this.msgList.push(res.action);
						msg = res.action;
					 else if (res.ok) 
	
					
					uni.showToast(
						title: msg,
						icon: "none",
						duration: 3000
					)
				);
			,
			unregister()  //注销监听
				broadcast.unregister(, res => 
					console.log(res);
					uni.showToast(
						title: res.msg,
						icon: "none",
						duration: 3000
					)
				);
			,
			sendBroadcast()  //发送自定义广播
				if (!this.action) 
					uni.showToast(
						title: 'action 不能为空',
						icon: "none"
					)
					return
				
				broadcast.sendBroadcast(
					action: this.action, //广播 action
					msg: this.msg, //随意自定义参数,可多个
				, res => 
					console.log(res);
					uni.showToast(
						title: res.msg,
						icon: "none",
						duration: 3000
					)
				);
			,
		
	
</script>

系统广播清单

这里列出了一些常用的系统广播清单,系统所有的广播都可支持,参数返回和系统一致

常用广播清单
action说明参数名说明
android.intent.action.SCREEN_OFF关闭屏幕
android.intent.action.SCREEN_ON打开屏幕
android.intent.action.USER_PRESENT解锁屏幕
android.intent.action.REBOOT重启设备
android.intent.action.ACTION_SHUTDOWN关闭系统
android.intent.action.CLOSE_SYSTEM_DIALOGS用户点击home键(homekey)
和多任务键(recentapps)时(返回的reason值会有区别)
、当屏幕超时进行锁屏时、当用户按下电源按钮、进行锁屏时
android.intent.action.ACTION_POWER_CONNECTED插上外部电源时发出的广播
android.intent.action.ACTION_POWER_DISCONNECTED已断开外部电源链接时发出的广播
android.intent.action.BATTERY_CHANGED充电状态,或者电池的电量发生变化
android.intent.action.BATTERY_LOW电池电量低
android.intent.action.BATTERY_OKAY电池电量充足,即从电池电量低变化到饱满时会发出广播
android.intent.action.AIRPLANE_MODE关闭或打开飞行模式时的广播state1:打开 0:关闭
android.intent.action.HEADSET_PLUG在耳机口上插入耳机时发出的广播state1:插入 0:拔出
android.provider.Telephony.SMS_RECEIVE接收短信 需要对应权限 android.permission.RECEIVE_SMS
android.media.VOLUME_CHANGED_ACTION音量改变
android.intent.action.TIME_TICK当前时间变化(正常的时间流逝)。当前时间改变,每分钟都发送
android.intent.action.PACKAGE_INSTALL触发一个下载而且完成安装时发出的广播,好比在电子市场里下载应用
android.intent.action.PACKAGE_REMOVED成功的删除某个APK以后发出的广播 (正在被安装的包程序不能接收到这个广播)
android.intent.action.PACKAGE_REPLACED替换一个现有的安装包时发出的广播(无论如今安装的APP比以前的新仍是旧,都会发出此广播)
android.intent.action.PACKAGE_ADDED成功的安装APK以后
android.intent.action.PACKAGE_CHANGED一个已存在的应用程序包已经改变,包括包名
android.intent.action.PACKAGE_DATA_CLEARED清除一个应用程序的数据时发出的广播(在设置--应用管理--选中某个应用,以后点清除数据时?)

方法清单

名称说明
register注册监听
unregister注销监听
sendBroadcast发送自定义广播

register 方法参数

注册监听广播

属性名类型必填默认值说明
actionsArraytrue‘’需要监听的广播,必填,可参考本文的“系统广播”,也可自行配置其他系统支持的广播,或自定义广播
接收到广播消息的参数
属性名类型说明
actionString广播action
属性名(…)其他所有系统返回的参数,如WiFi状态state

sendBroadcast 方法参数

发送自定义广播

属性名类型必填默认值说明
actionStringtrue‘’广播的action
属性名Stringfalse‘’自定义参数,名字可随意定义

系列插件

图片选择插件 Ba-MediaPicker文档

图片编辑插件 Ba-ImageEditor文档

文件选择插件 Ba-FilePicker文档

应用消息通知插件(多种样式,新增支持常驻通知模式) Ba-Notify文档

应用未读角标插件 Ba-Shortcut-Badge文档

应用开机自启插件 Ba-Autoboot文档

扫码原生插件(毫秒级、支持多码)Ba-Scanner-G文档

扫码原生插件 - 新(可任意自定义界面版本;支持连续扫码;支持设置扫码格式)Ba-Scanner文档

动态修改状态栏、导航栏背景色、字体颜色插件 Ba-AppBar文档

原生sqlite本地数据库管理 Ba-Sqlite文档

安卓保活插件(采用多种主流技术) Ba-KeepAlive文档

安卓快捷方式(桌面长按app图标) Ba-Shortcut文档

自定义图片水印(任意位置) Ba-Watermark文档

最接近微信的图片压缩插件 Ba-ImageCompressor文档

视频压缩、视频剪辑插件 Ba-VideoCompressor文档

动态切换应用图标、名称(如新年、国庆等) Ba-ChangeIcon文档

原生Toast弹窗提示(穿透所有界面、穿透原生;自定义颜色、图标 ) Ba-Toast文档

图片涂鸦、画笔 Ba-ImagePaint文档

pdf阅读(手势缩放、显示页数) Ba-Pdf文档

声音提示、震动提示、语音播报 Ba-Beep文档

websocket原生服务(自动重连、心跳检测) Ba-Websocket文档

短信监听(验证码) Ba-Sms文档

智能安装(自动升级) Ba-SmartUpgrade文档

监听系统广播、自定义广播 Ba-Broadcast文档

以上是关于uniapp 系统广播自定义广播插件 Ba-Broadcast的主要内容,如果未能解决你的问题,请参考以下文章

protected-broadcast 系统应用自定义广播规范

Webpack4 自定义 Plugins

广播自定义消息实现进程间的通信问题

我的Android进阶之旅解决Android8.0发送自定义广播接收不到的问题:PackageManager扫描静态注册广播接收器拿到ResolveInfo,指定包名和完整路径,然后发送自定义广播(代

BroadcastReceiver广播相关 - 转

android 广播自定义广播接收问题