什么是Phonegap中的cordova.xml?

Mr.*_* 安宇 6 android cordova

在尝试调试Phonegap错误消息("调用没有当前上下文的OpenGL ES api"时似乎没有引起任何问题)时,我遇到了一个随PhoneGap 1.6附带的更新版本的cordova.xml文件其中包含以下内容:

<preference name="classicRender" value="true" />
Run Code Online (Sandbox Code Playgroud)

将此行添加到的cordova.xml副本中没有做任何事情.但后来我也注意到该文件中有关访问来源的注释和其他行,我注意到我的应用程序的访问源设置为127.0.0.1,但我的所有代码都在远程服务器上,这似乎并不重要.

我搜索了文档但没有找到任何文档.

所以我要问:cordova.xml文件是什么,可以放入哪些指令,以及它们应该做什么?

Gun*_*son 15

cordova.xml文件是一个配置文件,用于指定列入白名单的URL,日志级别和呈现的设置.该文件以前称为phonegap.xml,并在Adobe/Nitobi 将PhoneGap代码库捐赠给Apache Software Foundation(ASF)进行孵化时重命名.

该文件包括三个设置.

首先是:

<access origin>
Run Code Online (Sandbox Code Playgroud)

它指定了可以加载的已批准URL列表.这些URL将添加到DroidGap类的白名单缓存中.只能在Cordova Webview或新浏览器实例中加载白名单中的URL.

第二是:

<log level> 
Run Code Online (Sandbox Code Playgroud)

它指定在Android上进行调试的日志级别.它可以设置为ERROR,WARN,INFO,DEBUG或VERBOSE(默认= ERROR).

第三是:

<preference name="classicRender" />
Run Code Online (Sandbox Code Playgroud)

这设定了领域

private boolean classicRender;
Run Code Online (Sandbox Code Playgroud)

DroidGap类中.我能找到的实际操作的唯一参考是在Cordova的这个提交中:

   if(android.os.Build.VERSION.SDK_INT < 14 && this.classicRender)
     {
         //This hack fixes legacy PhoneGap apps
         //We should be using real pixels, not pretend pixels
   ...
Run Code Online (Sandbox Code Playgroud)

也许更有用的是知道它显然被删除,因为它不能正常工作.

cordova.xml在DroidGap类中的loadConfiguration()方法中进行了解析:

private void loadConfiguration() {
     int id = getResources().getIdentifier("cordova", "xml", getPackageName());
     ...
     XmlResourceParser xml = getResources().getXml(id);
     etc...
Run Code Online (Sandbox Code Playgroud)

有关完整的loadConfiguration()方法,请参阅DroidGap类中的第1252行.解析了所有三个属性,但是根据上面的链接,看起来classicRender设置不起作用,可以忽略.