Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Broadcastreceiver Ionic Android从javascript到本机的广播事件_Broadcastreceiver_Ionic4 - Fatal编程技术网

Broadcastreceiver Ionic Android从javascript到本机的广播事件

Broadcastreceiver Ionic Android从javascript到本机的广播事件,broadcastreceiver,ionic4,Broadcastreceiver,Ionic4,我正试图通过广播插件将一个事件从javascript(具体来说是角度)发送到android: 在UI中,我使用一些数据触发本机事件: this.broadCaster .fireNativeEvent("com.service.print", { extras: { item: "test data" } }) .then((result) => { console.log("broadcast sent:&

我正试图通过广播插件将一个事件从javascript(具体来说是角度)发送到android:

在UI中,我使用一些数据触发本机事件:

this.broadCaster
    .fireNativeEvent("com.service.print", { extras: { item: "test data" } })
    .then((result) => {
        console.log("broadcast sent:" + result);
    })
    .catch((error) => {
        console.log("Error sending broadcast:" + error);
    });
在android上,我在
AndroidManifest.xml
中注册了一个接收器:

<receiver android:name="io.ionic.starter.PrintReceiver">
    <intent-filter>
        <action android:name="com.service.print"></action>
    </intent-filter>
</receiver>
当我尝试在Android设备上运行应用程序时,我遇到以下错误:

2020-07-31 10:31:34.007 11308-11416/io.ionic.starter V/Capacitor/Plugin: To native (Cordova plugin): callbackId: broadcaster343151718, service: broadcaster, action: fireNativeEvent, actionArgs: ["com.service.print",{"extras":{"item":"test data"}},false]
2020-07-31 10:31:34.022 11308-11433/io.ionic.starter V/CDVBroadcaster: sendBroadcast isGlobal=false
2020-07-31 10:31:34.051 11308-11308/io.ionic.starter I/Capacitor/Console: File: http://localhost/auth-auth-module-es2015.js - Line 70 - Msg: Error sending broadcast:OK
注意:我尝试使用同一个插件从android接收广播,效果很好


这里可能有什么问题。

好的,最终我发现brodcaster插件没有问题,它实际上发送了正确的广播

我学到的是,从Android 8开始,您不能在Manifest.xml中注册接收者,而是使用基于上下文的注册

2020-07-31 10:31:34.007 11308-11416/io.ionic.starter V/Capacitor/Plugin: To native (Cordova plugin): callbackId: broadcaster343151718, service: broadcaster, action: fireNativeEvent, actionArgs: ["com.service.print",{"extras":{"item":"test data"}},false]
2020-07-31 10:31:34.022 11308-11433/io.ionic.starter V/CDVBroadcaster: sendBroadcast isGlobal=false
2020-07-31 10:31:34.051 11308-11308/io.ionic.starter I/Capacitor/Console: File: http://localhost/auth-auth-module-es2015.js - Line 70 - Msg: Error sending broadcast:OK