Android AngularJS和Cordova函数用于下载和写入本地文件,但写入不起作用
我用ApacheCordova和angularjs为android开发了一个html5应用程序。在这个应用程序中,我有一个带有geojson数据的地图。数据位于远程服务器上,我想加入它,获取json数据,并以正常方式将其写入/android/Data/com.domain.name目录中的文件。获取部分正常,但文件未写入。。。我在usb设备电话中测试应用程序,现在不知道如何记录。您是否看到我的代码中有什么错误,或者我如何记录仿真 这是我的密码:Android AngularJS和Cordova函数用于下载和写入本地文件,但写入不起作用,android,angularjs,cordova,Android,Angularjs,Cordova,我用ApacheCordova和angularjs为android开发了一个html5应用程序。在这个应用程序中,我有一个带有geojson数据的地图。数据位于远程服务器上,我想加入它,获取json数据,并以正常方式将其写入/android/Data/com.domain.name目录中的文件。获取部分正常,但文件未写入。。。我在usb设备电话中测试应用程序,现在不知道如何记录。您是否看到我的代码中有什么错误,或者我如何记录仿真 这是我的密码: /* ONCLICK */ $scope.relo
/* ONCLICK */
$scope.reloadMap = function() {
/* test online */
if(navigator.onLine) {
/* url */
var url = "http://www.domain.com/API/map.js";
/* download file - distant */
$http({method: 'GET', url: url}).
success(function(data, status, headers, config) {
console.log(data);
/* write file - local */
function fail(error) {
console.log(error.code);
}
function gotFileWriter(writer) {
writer.write(data);
}
function gotFileEntry(fileEntry) {
fileEntry.createWriter(gotFileWriter, fail);
}
function gotFS(fileSystem) {
fileSystem.root.getFile("data/com.domain.name/data/map.js", {create: true, exclusive: false}, gotFileEntry, fail);
}
function requestFS() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
/* write function OK */
requestFS();
}).
error(function(data, status, headers, config) {
});
}
}
我剪切错误处理以获得更可读的代码
编译我的应用程序后的/android/res/xml/config.xml如下
<widget id="" version="0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<preference name="loglevel" value="DEBUG" />
<feature name="File">
<param name="android-package" value="org.apache.cordova.file.FileUtils" />
<param name="onload" value="true" />
</feature>
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />
</feature>
<feature name="InAppBrowser">
<param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" />
</feature>
<feature name="SplashScreen">
<param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
</feature>
<name></name>
<description></description>
<author></author>
<content src="index.html" />
<access origin="*" />
<feature name="App">
<param name="android-package" value="org.apache.cordova.App" />
</feature>
<preference name="useBrowserHistory" value="true" />
<preference name="exit-on-suspend" value="true" />
<preference name="Fullscreen" value="true" />
<preference name="webviewbounce" value="false" />
<preference name="SplashScreen" value="splash" />
<preference name="SplashScreenDelay" value="4500" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="AndroidPersistentFileLocation" value="Internal" />
</widget>
没有创建目录,所以出了什么问题?我将window.requestFileSystem=window.requestFileSystem | | window.webkitRequestFileSystem;对于chromium中的测试,我得到LocalFileSystem未定义错误这是window.PERSISTENT而不是LocalFileSystem.PERSISTENT。对于您的问题,请确保在请求文件系统之前等待deviceready事件。