2014-03-30 21 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很有用。干杯! –

相关问题