2014-01-18 52 views
4

我想通過phonegap/cordova API檢查已建立的網絡連接,但是,它不起作用。phonegap - navigator.connection.type未定義

我按照cordova文檔中的說明添加了插件,而phonegap local plugin list給出了[phonegap] org.apache.cordova.network-information

然而,只是要求我的手機上

document.addEventListener("deviceready", function() { 
    alert(Object.keys(navigator.connection)); 
}, false); 

結果(安卓4.0.4)總是返回0並在模擬器上用的是Android 4.4.2日誌運行到logcat的那navigator.connection是不確定的。事實上,在兩臺機器上alert(Object.keys(navigator));都不會顯示connection鍵。

任何解決方案?

的PhoneGap與科爾多瓦3.3.0

+0

你檢查,如果該插件安裝正確(對於examble檢查js文件存在於平臺\機器人\資產\ WWW \插件\ org.apache.cordova。網絡信息\ www)我有時必須卸載 - 重新安裝一些插件 – QuickFix

+0

好吧,它不在你指定的目錄中,但它肯定在'root/plugins'和'root/platforms/android/src/org/apache /科爾多瓦/ networkinformation'。重新安裝也放在那裏。沒有修復那裏。 – alex

+0

在你指定的路徑中,有一個.java文件,而不是js。在specidied的路徑中,我們應該看到(一旦構建項目)Connection.js和network.js(如果它們不在那裏),那麼您的項目已損壞(可能是android.json的問題) – QuickFix

回答

3

當您安裝該插件是將文件複製到www /插件和更新android.json

那麼當你構建項目,構建複製Java來平臺/ android/src/...和js文件到平臺\ android \ assets \ www \插件(並在plugin.xml中定義任何定製)

在多次我看到android.json沒有正確更新和JavaScript文件未複製。刪除和重新安裝插件解決了我的問題。

如果您沒有對platforms/android文件夾執行手動定製,我認爲清理項目的最簡單方法是清空/ plugins文件夾和平臺文件夾,然後重新安裝所需的所有插件。

+2

對不起,我花了這麼長時間,我意外地拋棄了我的項目,不得不重建直到現在。我向你致敬。 phonegap的文檔真的很煩人......:/ – alex

0

我有同樣的問題,發現我不得不運行「cordova build」,然後狀態正確返回。

當心 當我運行科爾多瓦構建,它似乎把一切都在我的〜/應用/ www目錄和overried一切都在應用/平臺/安卓/資產/ WWW/

我的「安裝流程」如下:

cordova create app com.app "App" 
cd app 
cordova platform add android 
cordova plugin add org.apache.cordova.network-information 
cordova plugin add org.apache.cordova.camera 
cordova plugin add org.apache.cordova.geolocation 
cordova build 

然後我就可以做應用程序/網絡代碼修改和開心的時候,‘部署’它使用‘科爾多瓦建設’(這似乎始終將文件複製到應用/平臺/安卓/ assets/www /。

如果我添加使用其他插件:

cordova plugin add org.apache.cordova.file 

(例如),那麼我需要運行

cordova build 

有它的工作。

我希望這有助於

(我用科爾多瓦3.3.1-0.1.2)

+1

你不應該更改platform文件夾內的www文件夾中的代碼。您應該直接在根www文件夾中更新。如果您需要某些平臺的特定代碼,則可以使用merges文件夾。 – QuickFix

相關問題