一、添加插件
新建Cordova项目
cordova create Hello com.xkw.hello
添加Android平台
在新建项目的根目录下,进入命令行,执行
cordova platform add android
添加广播插件
cordova plugin add cordova-plugin-broadcaster
二、修改Broadcaster插件文件
项目目录(Android)**:platforms\android\app\src\main\java\org\bsc\cordova\CDVBroadcaster.java
/**
* @param receiver
* @param filter
*/
protected void registerReceiver(android.content.BroadcastReceiver receiver, android.content.IntentFilter filter) {
// LocalBroadcastManager.getInstance(super.webView.getContext()).registerReceiver(receiver,filter);
super.webView.getContext().registerReceiver(receiver, filter);
}
/**
* @param receiver
*/
protected void unregisterReceiver(android.content.BroadcastReceiver receiver) {
super.webView.getContext().unregisterReceiver(receiver);
// LocalBroadcastManager.getInstance(super.webView.getContext()).unregisterReceiver(receiver);
}
/**
* @param intent
* @return
*/
protected void sendBroadcast(android.content.Intent intent) {
webView.getContext().sendBroadcast(intent);
// return LocalBroadcastManager.getInstance(super.webView.getContext()).sendBroadcast(intent);
}
三、JS示例代码
<script>
function open_door() {
receiverBroadcast();
console.log("1311event fired!");
window.broadcaster.fireNativeEvent("广播", {
boardid: 1,
lockid: 1
}, function() {
console.log("event fired!");
});
}
function receiverBroadcast() {
console.log("register broadcast received!");
var listener = function(e) {
console.log("didShow received! userInfo: " + JSON.stringify(e));
var jsonStr = JSON.stringify(e);
var objs = eval("("+jsonStr+")")
console.log(objs.contentResult +"=teststatus");
}
window.broadcaster.addEventListener("广播", listener);
}
</script>