2014-08-28 70 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'文件夾。一切工作。