无法在Android Phonegap上创建/写入文件
我正在尝试使用以下工具在Android上创建文件:无法在Android Phonegap上创建/写入文件,android,cordova,phonegap-plugins,Android,Cordova,Phonegap Plugins,我正在尝试使用以下工具在Android上创建文件: document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); } function gotFS(fileSystem) { fileSystem.root.getFil
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
fileSystem.root.getFile("example.txt", {
create: true
}, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.createWriter(gotFileWriter, fail);
}
function gotFileWriter(writer) {
writer.onwriteend = function(evt) {
console.log("contents of file now 'some sample text'");
writer.truncate(11);
writer.onwriteend = function(evt) {
console.log("contents of file now 'some sample'");
writer.seek(4);
writer.write(" different text");
writer.onwriteend = function(evt) {
console.log("contents of file now 'some different text'");
}
};
};
writer.write("some sample text");
}
function fail(error) {
console.log(error.code);
}
这段代码在iOS上运行良好,我可以看到在Documents文件夹中创建的文件。但是在Android上我没有看到任何文件
我已经添加了所有的插件。此外,我已按顺序采取以下步骤
添加插件
cordova插件添加org.apache.cordova.file
cordova插件添加org.apache.file-transfer
在我的应用程序中编译和构建android
cordova编译android
cordova构建android
我的配置文件还包含以下条目:
<name>Hello Cordova</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<access origin="*"/>
<content src="index.html" />
<!-- Preferences for iOS -->
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="DisallowOverscroll" value="false" />
<preference name="EnableLocation" value="false" /><!-- DEPRECATED -->
<preference name="EnableViewportScale" value="false" />
<preference name="FadeSplashScreen" value="true" />
<preference name="FadeSplashScreenDuration" value=".25" />
<preference name="HideKeyboardFormAccessoryBar" value="false" />
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="KeyboardShrinksView" value="false" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="ShowSplashScreenSpinner" value="true" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="iosPersistentFileLocation" value="Library" />
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation"/>
</feature>
<feature name="Device">
<param name="ios-package" value="CDVDevice"/>
</feature>
<feature name="Accelerometer">
<param name="ios-package" value="CDVAccelerometer"/>
</feature>
<feature name="Compass">
<param name="ios-package" value="CDVLocation"/>
</feature>
<feature name="Media">
<param name="ios-package" value="CDVSound"/>
</feature>
<feature name="Camera">
<param name="ios-package" value="CDVCamera"/>
</feature>
<feature name="Contacts">
<param name="ios-package" value="CDVContacts"/>
</feature>
<feature name="File">
<param name="ios-package" value="CDVFile"/>
</feature>
<feature name="NetworkStatus">
<param name="ios-package" value="CDVConnection"/>
</feature>
<feature name="Notification">
<param name="ios-package" value="CDVNotification"/>
</feature>
<feature name="FileTransfer">
<param name="ios-package" value="CDVFileTransfer"/>
</feature>
<feature name="Capture">
<param name="ios-package" value="CDVCapture"/>
</feature>
<feature name="Battery">
<param name="ios-package" value="CDVBattery"/>
</feature>
<feature name="SplashScreen">
<param name="ios-package" value="CDVSplashScreen"/>
</feature>
<feature name="Echo">
<param name="ios-package" value="CDVEcho"/>
</feature>
<feature name="Globalization">
<param name="ios-package" value="CDVGlobalization"/>
</feature>
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser"/>
</feature>
<feature name="Logger">
<param name="ios-package" value="CDVLogger"/>
</feature>
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage"/>
</feature>
<feature name="File">
<param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>
<feature name="FileTransfer">
<param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
</feature>
<!-- Deprecated plugins element. REmove in 3.0 -->
<plugins>
</plugins>
我在Android清单文件中拥有必要的权限:
以下是我的Cordova版本:3.5.0-0.2.6
在iOS上一切正常。在Android上,Logcat给出以下错误:
未捕获引用错误:未定义LocalFileSystem,来源:文件??android_asset/www/app.js您不能在同一config.xml文件中混淆iOS和android。确保在单独的config.xml中设置cordova插件 iOS 安卓
这基本上就是插件添加的方式。我发现phonegap和cordova网站上提供的文档非常混乱。我可能不得不跟着他们两个去做。 要在plugins.xml中添加必要的插件信息,您需要遵循以下步骤: 要更改配置文件,您需要遵循以下步骤:
然后编译并运行。我不确定是否有任何地方可以找到统一的文档。请让我知道,如果你知道任何统一的文件,其中结合了这一切。我正在使用Phonegap 3.5和cordova 3.5版本,并查看旧文档以找出解决方法谢谢您的回答。然而,正如上面的答案所示,这正是我们所缺少的:它基本上就是插件添加的方式。我发现phonegap和cordova网站上提供的文档非常混乱。我可能不得不跟着他们两个去做。要在plugins.xml中添加必要的插件信息,您需要遵循以下步骤:要更改配置文件,您需要遵循以下步骤:然后编译并运行。