Broadcastreceiver Ionic Android从javascript到本机的广播事件
我正试图通过广播插件将一个事件从javascript(具体来说是角度)发送到android: 在UI中,我使用一些数据触发本机事件: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:&
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