Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AngularJS和Cordova函数用于下载和写入本地文件,但写入不起作用_Android_Angularjs_Cordova - Fatal编程技术网

Android AngularJS和Cordova函数用于下载和写入本地文件,但写入不起作用

Android AngularJS和Cordova函数用于下载和写入本地文件,但写入不起作用,android,angularjs,cordova,Android,Angularjs,Cordova,我用ApacheCordova和angularjs为android开发了一个html5应用程序。在这个应用程序中,我有一个带有geojson数据的地图。数据位于远程服务器上,我想加入它,获取json数据,并以正常方式将其写入/android/Data/com.domain.name目录中的文件。获取部分正常,但文件未写入。。。我在usb设备电话中测试应用程序,现在不知道如何记录。您是否看到我的代码中有什么错误,或者我如何记录仿真 这是我的密码: /* ONCLICK */ $scope.relo

我用ApacheCordova和angularjs为android开发了一个html5应用程序。在这个应用程序中,我有一个带有geojson数据的地图。数据位于远程服务器上,我想加入它,获取json数据,并以正常方式将其写入/android/Data/com.domain.name目录中的文件。获取部分正常,但文件未写入。。。我在usb设备电话中测试应用程序,现在不知道如何记录。您是否看到我的代码中有什么错误,或者我如何记录仿真

这是我的密码:

/* 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事件。