Appearance
广播模块
集成和使用ESBroadcastModule
模块。
ESBroadcastManager
是对ESBroadcastModule
进一步封装。- 开发者可以直接使用
ESBroadcastModule
。建议直接使用ESBroadcastManager
。
集成
package.json
引入库
点击查看源码
js
"@extscreen/es-core": "^x.x.x"
发送广播
示例代码
点击查看源码
js
let paramsArray = [
['-a', 'android.intent.action.TEST_BC'],
]
ESBroadcastManager.sendBroadcast(paramsArray)
注册广播接收者
点击查看源码
js
let receiverIntentFilter = {
action: [
'android.intent.action.TEST_BC_A',
],
}
ESBroadcastManager.registerReceiver(this, receiverIntentFilter)
.then((() => {
ESToast.showToast("注册广播成功!")
}),
error => {
ESToast.showToast("注册广播失败!")
})
取消注册广播接收者
当广播不再使用,需要取消注册广播接受者。
点击查看源码
js
let receiverIntentFilter = {
action: [
'android.intent.action.TEST_BC_A',
],
}
ESBroadcastManager.unregisterReceiver(this, receiverIntentFilter)
.then((() => {
ESToast.showToast("取消注册广播成功!")
}),
error => {
ESToast.showToast("取消注册广播失败!")
})
接收广播
1、 首先注册广播接收者
2、 其次mixin
ESBroadcast
点击查看源码
js
export default {
mixins: [ESBroadcast],
methods: {
onESBroadcastReceive(intent) {
if (ESLog.isLoggable(ESLog.DEBUG)) {
ESLog.d(TAG, "------接收到广播----->>>" + JSON.stringify(intent))
}
},
},
};
3、返回值
Object intent
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
id | Number | `` | 广播的id |
action | String | `` | 广播的名称 |
extras | Object | `` | 广播携带的参数 |
完整示例
示例代码
点击查看源码
vue
<template>
<div class="es-sdk-root-css">
<title class="es-sdk-content-title-css" :text="this.$options.name"/>
<div class="es-sdk-content-divider-css"/>
<div class="es-sdk-content-column-css">
<div class="es-sdk-content-row-css">
<text-button text="发送广播" @onButtonClicked="onSendBroadcastButtonClicked"/>
<text-button text="注册广播接受者" @onButtonClicked="onRegisterReceiverButtonClicked"/>
<text-button text="取消注册广播接受者" @onButtonClicked="onUnregisterReceiverButtonClicked"/>
</div>
</div>
<text :text="intent"></text>
</div>
</template>
<script>
import {
ESPage,
ESBroadcastManager, ESBroadcast, ESToast,
} from "@extscreen/es-core";
const TAG = "ESBroadcast";
export default {
name: '广播模块',
mixins: [ESPage, ESBroadcast],
data() {
return {
intent: '',
receiverIntentFilter: null,
}
},
methods: {
onESCreate(params) {
this.receiverIntentFilter = {
action: [
'android.intent.action.TEST_BC_A',
],
}
},
onSendBroadcastButtonClicked() {
let paramsArray = [
['-a', 'android.intent.action.TEST_BC_A'],
['--es', 'stringKey', 'stringValue'],
]
ESBroadcastManager.sendBroadcast(paramsArray)
},
onRegisterReceiverButtonClicked() {
ESBroadcastManager.registerReceiver(this, this.receiverIntentFilter)
.then((() => {
ESToast.showToast("注册广播成功!")
}),
error => {
ESToast.showToast("注册广播失败!")
})
},
onUnregisterReceiverButtonClicked() {
ESBroadcastManager.unregisterReceiver(this, this.receiverIntentFilter)
.then((() => {
this.intent = '';
ESToast.showToast("取消注册广播成功!")
}),
error => {
this.intent = '';
ESToast.showToast("取消注册广播失败!")
})
},
onESBroadcastReceive(intent) {
this.intent = JSON.stringify(intent);
},
},
};
</script>
<style scoped>
</style>