2013-11-14 25 views
2

我試圖使用childBrowser插件的PhoneGap和它的失敗,生成.apk文件,childBrowser.jar phonegap插入錯誤在:settings.setPluginState(true);

在Eclipse中,我可以看到在一個錯誤(不建議使用功能):

settings.setPluginState(true); 

這裏的問題是這兩個版本有這一行,反正我評論這條線(帶沒有那麼多的希望),但它仍然未能

由於沒有我的意思是這樣的:

window.plugins.childBrowser.showWebPage('http://google.com/') 

是不是打開任何頁面或拋出任何錯誤...

任何想法我失蹤了?

PD:我包括將.jar,所述的.js(和引用它),在androidmanifest.plist和config.xml中

CNC中

enter image description here

PhoneGap的行: 2.1.0
childBrowser:2.0

CNC中

如果等待,直到德副準備好然後我得到在控制檯的模擬器此錯誤:

E/Web Console(30411): Uncaught TypeError: Cannot read property 'childBrowser' of undefined at file:///android_asset/www/js/scripts.js?v=33s:883 
+0

你用什麼科爾多瓦的版本和插件? – Purus

+0

Cordova 2.1.0和兒童瀏覽器版本爲2.0 –

+0

只有在設備準備就緒後才能使用子瀏覽器功能。那麼你在裏面試過了嗎?你有沒有在正確的位置包含.js文件和.java文件?如果不是什麼都行不通。 – Purus

回答

1

你提到的錯誤說你沒有有效的.js文件中包含了插件工作,這是必要的。

添加/刪除任何插件的推薦方式是使用CLI。

請確保您已將.js文件包含在cordova.js文件下的html文件中。

也更新到最近版本的科爾多瓦。

3

除非您有特別的要求堅持使用PhoneGap 2.1,否則請使用command-line interface和版本3+。子瀏覽器插件現在默認與Cordova一起發佈。

這是那麼容易,因爲:

$ cordova create hello com.example.hello HelloWorld 
$ cordova platform add android 
$ cordova plugin add org.apache.cordova.inappbrowser 

添加您的HTMLS到www目錄和使用構建應用程序:

$ cordova build android 

要打開孩子瀏覽器的URL,請撥打以下在JavaScript中:

window.open("http://google.com/", "_blank"); 
+0

如果我的項目已經存在,該怎麼辦?我應該省略第一行嗎?我也應該從什麼路徑運行? –

+0

這取決於原始項目修改了多少默認PhoneGap Java項目。如果它只是處理HTML('www'目錄)並且沒有在Java中做任何特殊的事情,那麼你可以放棄舊項目,創建一個新項目並複製到HTML中。如果有客戶或項目經理看着你的肩膀,你可以把它從2.x遷移到3.x。注意:2.x中的一些默認功能成爲3.x中的插件(例如'connection'對象)。一旦Cordova安裝正確,你可以從任何地方運行上述命令('$ sudo npm install -g cordova')。 –

+0

但是,如果我從任何地方運行它,它將如何知道在哪裏保存它? –

1

您不能評論此行:

settings.setPluginState(true); 

重要信息:但是,如果你使用的是Simulator,不幸的是,plugins目前不支持Simulator - 你可以與他們在真實設備上才能正常工作。

否則,你會得到你所說的錯誤:

E/Web Console(30411): Uncaught TypeError: Cannot read property 'childBrowser' of undefined at file:///android_asset/www/js/scripts.js?v=33s:883 

因爲當然如果你不初始化插件,你將有:

window.plugins = undefined 

因爲窗口的屬性plugins不存在本地,你必須創建/初始化它。

您可以在JavaScript中打開一個子窗口是這樣的:

window.showModalDialog("http://www.google.com"); 
+0

但是,然後我需要更換它,如果沒有,該應用程序將不會編譯,因爲這條線... –

+0

閱讀此:http://developer.android.com/reference/android/webkit/WebSettings.html#setPluginState%28android.webkit.WebSettings.PluginState%29你是對的 –

+0

爲什麼你需要使用'window.plugins。 childBrowser.showWebPage()'?你不能使用'window.showModalDialog()'它不起作用? –