Cordova插件如何在引擎盖下工作?

Cordova插件如何在引擎盖下工作?,cordova,cordova-plugins,Cordova,Cordova Plugins,我的问题很基本: 有人能告诉我Cordova插件是如何工作的吗? 特别是我想知道插件是如何从WebView获取输入并将其委托给本机系统并将结果返回给WebView的 哪些android类对此负责 或者更具体地说,所有这些魔法是如何在引擎盖下发生的? 如果有人能提供一些基本的理解,我会很好,因为我找不到任何文档,我想在进一步讨论之前了解一下。Cordova plugin是一种附加代码,它为本机组件提供JavaScript接口。它们允许应用程序使用纯web应用程序无法使用的本机设备功能。 该插件将在

我的问题很基本:

有人能告诉我Cordova插件是如何工作的吗?

特别是我想知道插件是如何从WebView获取输入并将其委托给本机系统并将结果返回给WebView的

哪些android类对此负责 或者更具体地说,所有这些魔法是如何在引擎盖下发生的?


如果有人能提供一些基本的理解,我会很好,因为我找不到任何文档,我想在进一步讨论之前了解一下。Cordova plugin是一种附加代码,它为本机组件提供JavaScript接口。它们允许应用程序使用纯web应用程序无法使用的本机设备功能。 该插件将在内部有本机代码与设备功能进行通信,如打开摄像头、访问设备中的文件等。 可以创建自定义插件,请参阅

在android的本机代码中,您将具有启动设备功能的意图。提及

现在,在开发混合应用程序时,插件将同时包含js代码和本机代码(android的java和iOS的objective-C)

当您的应用程序调用插件的JavaScript API时,它会重定向到在设备上实现该API的底层插件本机代码。例如,JavaScript API被重定向到Android设备上的Java代码或iOS设备上的目标C代码


您可以提取插件并检查代码以便更好地理解。

我认为cordova使用WebView类的“addJavascriptInterface”方法将Javascript代码与Java代码链接起来:

我在cordova项目的文件(添加android平台后)中搜索了此方法,并在文件“SystemWebViewEngine.java”和其他文件中找到了它