Cordova 发送接收外部广播

一、添加插件

新建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>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于Hybrid应用程序,接收发送数据可以通过不同的方式实现,具体取决于应用程序的需求和技术栈。以下是一些常见的方法: 1. 使用Webview桥接:Hybrid应用程序通常使用Webview来显示Web内容,可以使用Webview提供的桥接功能来实现与原生代码的通信。原生代码可以通过调用Webview提供的JavaScript接口向Web页面发送数据,并通过设置JavaScript回调函数来接收来自Web页面的数据。 2. 使用插件或扩展:某些Hybrid框架(如Cordova、React Native)提供了插件或扩展机制,可以使用这些机制来实现原生代码与Web页面之间的通信。通过编写自定义插件或扩展,可以在原生代码中调用并传递数据给Web页面,并在Web页面中使用JavaScript回调函数来接收来自原生代码的数据。 3. 使用网络请求:Hybrid应用程序可以使用网络请求来发送接收数据。原生代码可以使用网络请求库(如OkHttp、AFNetworking)发送HTTP请求,并将数据发送到服务器或其他应用程序。同样,原生代码也可以接收来自服务器或其他应用程序的HTTP响应,并处理响应中的数据。 4. 使用本地存储:Hybrid应用程序可以使用本地存储来临时保存需要发送接收的数据。原生代码可以将数据存储在本地数据库或文件中,并在需要时读取数据。Web页面也可以通过JavaScript访问本地存储,并读取或写入数据。 这些方法只是一些常见的实现方式,具体的实现取决于应用程序的需求和所使用的技术栈。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值