2014-03-30 23 views
9

我希望在運行時從我的科爾多瓦/ PhoneGap的應用程序的​​3210讀取這些值:是否有cordova插件從config.xml讀取值?

  • 版權
  • 描述

然而,很驚訝地看到有沒有「Config '功能參考指南: http://cordova.apache.org/docs/en/3.4.0/index.html

我已經訴諸寫我自己的函數來讀取和手動解析這個文件,但是我覺得必須有一個(現有的)更好的方法。

開發人員是否應該手動解析config.xml以提取必要的信息,或者是否存在可用於執行此操作的現有插件?

+0

陷入同樣的​​事情:http://stackoverflow.com/questions/24939920 /接入配置-XML的喜好從 - JavaScript的插件。 – jviotti

+1

對於未來的搜索者:根據您的需要,您可以將佔位符置於JavaScript文件中,並用構建掛鉤替換它們。 [這個要點](https://gist.github.com/DavidFrahm/2ce16cb6aec90b2c428f)讓我朝着正確的方向前進。 – Hobo

回答

0

你可以在這裏找到它。

的iOS

enter image description here

的Android

enter image description here

+0

對不起,如果我的問題不清楚。我不問問config.xml文件在哪裏,我在問是否有cordova.js(或社區插件)提供的window.config API? – thinkbigthinksmall

4

你可以在iOS,WP7,WP8,Windows8的使用下面的代碼,並可能Ubuntu的

function readConfig() { 
    var xhr = new XMLHttpRequest(); 
    xhr.addEventListener("load", function() { 
     var parser = new DOMParser(); 
     var doc = parser.parseFromString(xhr.responseText, "application/xml"); 
     alert("Description : " + 
       doc.getElementsByTagName("description").item(0).textContent); 
    }); 
    xhr.open("get", "../config.xml", true); 
    xhr.send(); 
} 

爲Android你必須查NGE文件路徑從"../config.xml""../../android_res/xml/config.xml"

從科爾多瓦採取郵寄,其中討論了答案: https://www.mail-archive.com/[email protected]/msg14313.html

也有沒有官方的插件讀取配置: https://github.com/apache/cordova-labs/tree/cdvtest/cordova-plugin-appsettings

+0

該代碼段不適用於Android或Blackberry。關於郵件列表上的代碼的討論表明,編寫一個本地插件來返回'config.xml'的位置可能是最防彈的方法。有一個[打開的門票](https://issues.apache.org/jira/browse/CB-6139),近一年未被觸及。 – James

1

對於誰不想要的那些搗亂xhr查詢,有兩個插件可以使用:

1 plugin-buildinfo(僅適用於Android和IOS,但sooo很棒)

2 plugin-app-version(輕,但支持更多的平臺)

要使用第二個快速啓動,所有你需要做的就是添加插件到您的項目:

cordova plugin add https://github.com/whiteoctober/cordova-plugin-app-version.git 

,並呼籲要將如下:

cordova.getAppVersion(function (version) { 
    alert(version); 
}); 
0

你可以使用下面的科爾多瓦插件:

cordova plugin add cordova-plugin-customconfigparameters 

Config.xml添加您的自定義參數的偏好標籤:

<preference name="name" value="Ibrahim"/> 
<preference name="copyright" value="Direct Direction 2017"/> 
<preference name="description" value="Information Technology"/> 

注:一定偏好的名稱應該是小寫字母(在iOS工作)。

然後在頁面中使用以下腳本獲取來自Config.xml鍵的值:

var paramkeyArray=["name","copyright","description"]; 
CustomConfigParameters.get(function(configData){ 
    console.log(configData.name); 
    console.log(configData.copyright); 
    console.log(configData.description); 
},function(err){ 
    console.log(err); 
},paramkeyArray); 

更多細節見https://www.npmjs.com/package/cordova-plugin-customconfigparameters

+0

歡迎!您可能會發現在格式化代碼塊上查看本指南https://stackoverflow.com/editing-help#code很有用。乾杯! –

相關問題