我想調試cordova_plugins.json文件用於什麼?cordova_plugins.json文件的用途是什麼?科爾多瓦在初始化請求它
我目前使用多個插件,並且我從未與此文件交互過。我想知道爲什麼cordova在初始化時爲這個文件做出xhr請求。
在看我的控制檯時,我每次在Chrome中測試我的應用程序時都會看到這個404錯誤,並且想知道爲什麼需要此文件。
我想調試cordova_plugins.json文件用於什麼?cordova_plugins.json文件的用途是什麼?科爾多瓦在初始化請求它
我目前使用多個插件,並且我從未與此文件交互過。我想知道爲什麼cordova在初始化時爲這個文件做出xhr請求。
在看我的控制檯時,我每次在Chrome中測試我的應用程序時都會看到這個404錯誤,並且想知道爲什麼需要此文件。
這似乎是Cordova 2.6.0中引入的一個功能,至少我在這個版本中已經注意到了。 在這一點上,我找不到任何文件,我沒有很多細節,但現在我解決了404問題,添加一個虛擬cordova_plugins.json文件到我的項目的根目錄。
由於預計添加以下內容到文件的有效JSON文件:「只是科爾多瓦需要一個虛擬文件2.6.0」
我確認弗朗西斯回答,如果一個虛擬文件插入會注意,在2.7,有時它開始一個無限循環在錯誤「processMessage失敗:無效消息:」(line cordova-2.7.0.js:971)。保持404錯誤似乎確實更安全。 (ref:https://groups.google.com/forum/?fromgroups#!topic/phonegap/slbvvtEw0aw)
爲了擺脫無限循環的,我不得不從我的index.html文件中刪除
看來,這是作爲一個討論的已知問題:here
創建一個虛擬的JSON文件並沒有解決我這個問題......事實上,在科爾多瓦 - 2.7末尾移除代碼這個整個塊。 0.js
// Try to XHR the cordova_plugins.json file asynchronously.
try { // we commented we were going to try, so let us actually try and catch
var xhr = new context.XMLHttpRequest();
xhr.onload = function() {
// If the response is a JSON string which composes an array, call handlePluginsObject.
// If the request fails, or the response is not a JSON array, just call finishPluginLoading.
var obj = this.responseText && JSON.parse(this.responseText);
if (obj && obj instanceof Array && obj.length > 0) {
handlePluginsObject(obj);
} else {
finishPluginLoading();
}
};
xhr.onerror = function() {
finishPluginLoading();
};
xhr.open('GET', 'cordova_plugins.json', true); // Async
xhr.send();
}
catch(err){
finishPluginLoading();
}
並用一個調用finishPluginLoading()來代替它將解決問題。
你能使你的答案更清楚一點不WEL瞭解,更換'finishPluginLoading '在哪裏以及如何。你可以說得更詳細點嗎 ? –
@LaliPali,這很清楚。刪除整段代碼並用finishPluginLoading()替換它; – Danation
原因之一創建一個虛擬cordova_plugins.json不起作用,至少在IIS 7 +,是你必須將MIME類型映射明確添加到IIS,否則會阻止請求。 –
我實際上把這個文件作爲一個空的json文件來模擬,其內容是:「{}」和-using cordova 2.6-似乎解決了問題。沒有一個醜陋的404和科爾多瓦似乎工作得很好。
編輯:你可以刪除從cordova一起做ajax請求的代碼,而且事情會很好地工作。
你可以找到更多關於它here。
SDK/XDK中的位置如下所示:xdk-new \ xdk \ components \ server \ emulator \ resources \ cordova_plugins。JSON
該文件確實代表科爾多瓦/ PhoneGap的以前版本中的錯誤/鬆結束 - 和nurieta的修復建議並解決它的缺失引發的(無害)錯誤。這個文件的後繼現在完全由Cordova/PhoneGap CLI創建和處理,並駐留在/myapp/platforms/#platform#/www/cordova_plugins.js
底線 - 儘管文件sorta存在仍然不再是一個問題如科爾多瓦3.0。
完全爲我工作。 – mark
還在尋找答案,這是什麼文件... –