任何人都可以帮我解决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>
有什么建议吗?
答案 0 :(得分:0)
从cordova中删除所有NPM插件并将phonegap版本放在我的config.xml顶部,我注释掉了
<content src="index.html" />
以及所有“功能”参数......我能够使用3.7.0上传到PhoneGap Build并进行编译。但是,此时阅读文档内容不起作用。
答案 1 :(得分:0)
@Yura,
在你的回复所用的很多天里,科尔多瓦团队再次改变了一切。这是我建议人们使用其编译器和插件版本的原因之一。否则,你的代码就会在Cordova团队的一时兴起。
最新的更改使插件的插件名称中的句点(。)成为可用。直到几天前,你必须使用新的短划线( - )。这会导致问题,因为具有句点(。)的名称未被正式弃用。因此,在您的原始帖子发布后,他们创建了一个补丁来解决这个问题。
无论如何,要做很多事情还有很长的路要走。
<feature (...)>
不适用于 Phonegap Build whitelist
。需要
以下是您需要的文件。
这是新系统的一个简单示例:
<gap:plugin name=cordova-plugin-device source=npm version=1.0.1 />
除了调试服务器功能之外,由于PhoneGap API已经插入,因此在PhoneGap Build上基本上不推荐使用功能标记。
关于这一点,我在这里没有提供任何例子,因为该系统可能会在6个月内发生变化。它有问题。
最后一件事,你错过了SO标签phonegap-build
,这可能是为什么花了这么长时间才得到这个答案。
让我知道它是怎么回事。最好的运气