1. 程式人生 > >Cordova 傳送接收外部廣播

Cordova 傳送接收外部廣播

#### 一、新增外掛

**新建Cordova專案**

``` cordova create CordovaHotCode com.ezample.hotcode ```

新增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> ```