Phonegap,从Android打电话到Cordova



我知道这个问题在这里已经被问过无数次了,但是似乎没有一个答案符合我的需求。

我有一个BroadcastReceiver从其他应用程序接收数据,所以代码执行总是在Android本地代码开始。

我看到webView.sendJavascript被弃用了,但是我没有Cordova webviewBroadcastReceiver上可用。

我注意到你会这样做:

webView.loadUrl("javascript:console.log('hello from wear: " + mStopsNumber + "');");

但是我不能从BroadcastReceiver访问cordova, webview对象

我不明白为什么有这么多的问题,要求类似的东西,每个人都回答关于如何建立一个Cordova插件。我知道如何构建我的自定义Cordova插件,但据我所知,Cordova插件是在JS代码与codova.exec(whatever启动,这不是我的场景。

我错过了什么?

BroadcastReceiver设置为CordovaPlugin的非static内部类。现在可以在BoradcastReceiver中访问CordovaPlugin的字段。因此,您需要将initialize传递的CordovaWebView存储在一个字段中,以便访问它。


编辑:为了使用你的BroadcastReceiver,你要么必须通过代码注册它,因为Android Manifest将需要你的CordovaPlugin的实例来实例化它,它不能有。

或者你走另一种方式,而不是让你的BroadcastReceiver一个内部类,你保存CordovaWebView在一个静态上下文中,所以你可以从任何地方访问它。

注意:你得到这个错误是因为一个非static内部类有一个隐式的构造函数参数:它的父对象。

最新更新