6

在尝试调试 Phonegap 错误消息(“调用 OpenGL ES api with no current context”,这似乎没有导致任何问题)时,我遇到了 PhoneGap 1.6 和其中包含以下行:

<preference name="classicRender" value="true" />

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

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

所以我不得不问:cordova.xml 文件是干什么用的,里面可以放什么指令,它们应该做什么?

4

1 回答 1

15

cordova.xml 文件是一个配置文件,用于指定白名单 url、日志级别和呈现的设置。该文件以前称为 phonegap.xml,并在 Adob​​e/Nitobi将 PhoneGap 代码库捐赠给 Apache 软件基金会 (ASF) 进行孵化时重命名。

该文件包括三个设置。

首先是:

<access origin>

它指定了可以加载的 URL 的批准列表。这些 url 被添加到DroidGap类的白名单缓存中。只有白名单上的 URL 可以加载到 Cordova webview 或新的浏览器实例中。

二是:

<log level> 

它指定了在 Android 上调试的日志级别。它可以设置为 ERROR、WARN、INFO、DEBUG 或 VERBOSE(默认值=ERROR)。

第三是:

<preference name="classicRender" />

设置字段

private boolean classicRender;

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
   ...

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

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

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

有关完整的 loadConfiguration() 方法,请参见DroidGap类中的第 1252 行。所有三个属性都已解析,但根据上面的链接,似乎 classicRender 设置不起作用并且可以忽略。

于 2012-05-10T01:11:44.900 回答