阅读文档不适用于新的PhoneGap Build

时间:2015-10-29 14:54:50

标签: cordova api build documents

任何人都可以帮我解决PhoneGap遇到的问题。我构建了一个应用程序,它曾经在构建3.7.0(默认)上工作正常。读取文件夹内容等的代码可以正常工作。现在我尝试编译新的默认版本5.2.0,这段代码不起作用。读取文件夹/文件和编写文件夹/文件不再起作用。所以我去了phonegap并上传了我的项目的新版本,其中config.xml指向旧版本的3.7.0,它甚至不再编译在phonegap构建上。

不再适用于新PhoneGap Build的代码示例(但在3.7.0上可以正常工作):

var docPath;

document.addEventListener("deviceready", onDeviceReady, false);  

function onDeviceReady() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, onFail);
}

function onFileSystemSuccess(fileSystem) {
    docPath = fileSystem.root;
    fileSystem.root.getDirectory("Documents", { create: true, exclusive: true }, getDirSuccess, onFail);
}

function getDirSuccess(dirEntry) {
    alert(JSON.stringify(dirEntry));
    var directoryReader = dirEntry.createReader();
    directoryReader.readEntries(readerSuccess, onFail);
}

function readerSuccess(entries) {
    var i;
    for (i = 0; i < entries.length; i++) {
        alert(entries[i].name);
    }
}

我的Config.xml文件的一部分:

<access origin="*"/>
<preference name="SplashScreen" value="screen" />
<preference name="phonegap-version" value="3.7.0" />
<preference name="android-build-tool" value="ant" />

<preference name="orientation" value="portrait" />
<gap:plugin name="org.apache.cordova.battery-status" source="npm"/>
<gap:plugin name="org.apache.cordova.camera" source="npm"/>
<gap:plugin name="org.apache.cordova.media-capture" source="npm"/>
<gap:plugin name="org.apache.cordova.console" source="npm"/>
<gap:plugin name="org.apache.cordova.contacts" source="npm"/>
<gap:plugin name="org.apache.cordova.device" source="npm"/>
<gap:plugin name="org.apache.cordova.device-motion" source="npm"/>
<gap:plugin name="org.apache.cordova.device-orientation" source="npm"/>
<gap:plugin name="org.apache.cordova.dialogs" source="npm"/>
<gap:plugin name="org.apache.cordova.file" source="npm"/>
<gap:plugin name="org.apache.cordova.file-transfer" source="npm"/>
<gap:plugin name="org.apache.cordova.geolocation" source="npm"/>
<gap:plugin name="org.apache.cordova.globalization" source="npm"/>
<gap:plugin name="org.apache.cordova.inappbrowser" source="npm"/>
<gap:plugin name="org.apache.cordova.media" source="npm"/>
<gap:plugin name="org.apache.cordova.network-information" source="npm"/>
<gap:plugin name="org.apache.cordova.splashscreen" source="npm"/>
<gap:plugin name="org.apache.cordova.vibration" source="npm"/>
<gap:plugin name="cordova-plugin-flashlight" source="npm" />
<gap:plugin name="org.apache.cordova.console" source="npm"/>
<gap:plugin name="org.apache.cordova.network-information" source="npm"/>
<gap:plugin name="cordova-plugin-legacy-whitelist" source="npm" />

<icon src="icon.png"/>

<!-- for iOS -->
<feature name="Flashlight">
  <param name="ios-package" value="Flashlight" />
</feature>

<!-- for Android -->
<feature name="Flashlight">
  <param name="android-package" value="nl.xservices.plugins.Flashlight" />
</feature>

<!-- for WP8 -->
<feature name="Flashlight">
  <param name="wp-package" value="Flashlight" />
</feature>
</widget>

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

从cordova中删除所有NPM插件并将phonegap版本放在我的config.xml顶部,我注释掉了

<content src="index.html" />

以及所有“功能”参数......我能够使用3.7.0上传到PhoneGap Build并进行编译。但是,此时阅读文档内容不起作用。

答案 1 :(得分:0)

@Yura,
在你的回复所用的很多天里,科尔多瓦团队再次改变了一切。这是我建议人们使用其编译器和插件版本的原因之一。否则,你的代码就会在Cordova团队的一时兴起。

最新的更改使插件的插件名称中的句点(。)成为可用。直到几天前,你必须使用新的短划线( - )。这会导致问题,因为具有句点(。)的名称未被正式弃用。因此,在您的原始帖子发布后,他们创建了一个补丁来解决这个问题。

无论如何,要做很多事情还有很长的路要走。

  1. 使用短划线移至 source = npm 新名称。不需要。
  2. 您拥有所有核心Cordova插件。删除那些你不需要的东西。
  3. <feature (...)>不适用于 Phonegap Build
  4. 实施whitelist。需要
    • Cordova 4.x,5.x或更高(Google播放所需)
    • Apple的iTunes
  5. 以下是您需要的文件。

    1. &安培; 2. Core Plugins Setup
    2. 这是新系统的一个简单示例:

      <gap:plugin name=cordova-plugin-device source=npm version=1.0.1 />

      1. 来自Top Mistakes by Developers new to Cordova/Phonegap - #12 reads
      2.   

        除了调试服务器功能之外,由于PhoneGap API已经插入,因此在PhoneGap Build上基本上不推荐使用功能标记。

        1. HOW TO apply the Cordova/Phonegap the whitelist system
        2. 关于这一点,我在这里没有提供任何例子,因为该系统可能会在6个月内发生变化。它有问题。

          最后一件事,你错过了SO标签phonegap-build,这可能是为什么花了这么长时间才得到这个答案。

          让我知道它是怎么回事。最好的运气

相关问题