2014-08-28 30 views
3

我有一个现有的原生Android应用程序,我添加了一个科尔多瓦web视图。 这是使用Intellij的新Gradle项目格式。 我已经成功加载了cordova活动,并按预期打开。 我按照cordova docs添加了webview。科尔多瓦3.5嵌入式webview插件

现在我想使用一些可用的插件,但无法找到将它们添加到项目中的方法。 由于这不是cordova生成的项目,plugman不起作用。我试着复制我感兴趣的插件的JS和Java文件到我的源代码目录,但这会导致各种错误。

例如要求是不确定的,这种情况发生时,我加入requirejs到的WebView的index.html 并转移到

Uncaught Error: Module name "cordova/exec" has not been loaded yet for context: _. Use require([]) 
http://requirejs.org/docs/errors.html#notloaded cordova.js:8 
Failed to load resource file:///android_asset/www/scripts/cordova_plugins.js 
deviceready has not fired after 5 seconds. cordova.js:1191 
Channel not fired: onDOMContentLoaded 

如何获得一个插件这个工作?

编辑:

我手动走动的东西。

  1. 这必须放入一个现有的项目,它使用gradle建设。
  2. 使用cordova create以旧的ANT格式生成一个项目。
  3. 我遵循关于在现有项目中嵌入WebView的文档(请参阅上面的链接),但它没有提到任何JavaScript文件。所以我刚刚从android平台目录复制了cordova.js。
  4. 像明智一样,我下载了我想要的插件,复制了它们的JavaScript文件,将这个特性添加到了build.xml中,并将它们的Java文件复制到了我的src目录中。

我不知道cordova_plugins.js或cordova准备生成它们。

+0

不太清楚你如何设置构建。 目前'cordova prepare android'将'cordova.js'和'cordova_plugins.js'文件创建到'file:/// android_asset/www /'文件夹。 你手动移动东西吗? – codevision 2014-08-29 05:32:53

+0

@codevision编辑回应你的问题。 – zcourts 2014-08-29 05:57:40

回答

1

您必须使用Plugman来管理定制的Cordova WebView中的插件。

请删除所有现有的插件,并使用plugman阅读它们。

plugman install --platform android --project <proj> --plugin org.apache.cordova.battery-status --www <proj>/assets/www/scripts 

其中<proj>是在其中创建您的主要项目的文件夹, 另外,您可以使用--www参数,它允许您指定的Web应用程序根的存储位置。例如:

plugman install --platform android --project <proj> --plugin org.apache.cordova.battery-status --www <proj>/assets/www/scripts 

Plugman reference

编辑

如果你已经高度定制的项目,您可以创建空的科尔多瓦项目中,你从这个项目中添加 插件,并复制cordova_plugins.jsassets\www\scripts,科尔多瓦应该取这些文件。如果你有你的插件JS文件不在assets\www\scripts\plugins\文件夹,但取而代之的是在assets\www\plugins必须修改的cordova_plugins.js内容一样,

module.exports = [ 
..... 
{ 
    "file": "../plugins/org.apache.cordova.inappbrowser/www/InAppBrowser.js", 
    "id": "org.apache.cordova.inappbrowser.InAppBrowser", 
    "clobbers": [ 
     "window.open" 
    ] 
}, 
... 
] 
+0

plugman不能正常工作,正如我在问题中提到的那样,plugman说“当前目录不是基于cordova的项目” – zcourts 2014-08-29 15:05:02

+0

添加了更多添加插件的方式 – codevision 2014-08-29 16:00:47

0

这里是我怎么来的,虽然一些输入, 我在类似于OP的位置,在我的原生Android应用程序中嵌入Cordova Web视图。 执行后 plugman install --platform android --project <proj> --plugin org.apache.cordova.battery-status --www <proj>/assets/www/scripts 发生什么事是你在原来的'主'文件夹,(你的AndroidManifest.xml的地方)得到一个新的'科尔多瓦'文件夹。除此之外,还有'src'文件夹,其中包含您实际需要生成的代码。

我所做的是将组织文件夹从src复制到'java'文件夹。一切工作。