请教如何在Android机器上读取文件(已解决)
发布于 2年前 作者 testmeiya 1255 次浏览 来自 问答

网站目录如下 www/ index.html a.txt

在根目录下有index.html和a.txt文件,我希望读取a.txt文件,代码如下: url = ‘/a.txt’ $http.get(url).success(function(data) { … })

在浏览器中能正常读取到a.txt文件的内容,但在Android机器上就不行,代码是进了success里了,但没读出文件内容,请教有没有人知道如何解决?

最终用以下代码解决了

url = ‘file:///android_asset/www/a.txt’
$http.get(url).success(function(data) {
…
})

同时测试使用插件也可以(谢谢DongHongfei):

$cordovaFile.checkFile(cordova.file.applicationDirectory, ‘www/a.txt’).then(function(success) {
    log('applicationDirectory success:' + success);
}, function(error) {
    log('applicationDirectory error:' + error);
});
3 回复

@DongHongfei 谢谢,但这个文件打包后会被放到什么地方?在手机上搜不到这个文件。 我使用文档上列出的所有路径,全都找不到文件(applicationDirectory, applicationStorageDirectory,cacheDirectory…), 全部进入以下代码的error里。 我尝试了在sdcard目录中增加和删除一个文件,结果有文件时是进入success,没文件时进入error,说明这段代码应该是没问题的。

    $cordovaFile.checkFile(cordova.file.externalRootDirectory, dictionary_url).then(function(success) {
      log('externalRootDirectory success:' + success);
    }, function(error) {
      log('externalRootDirectory error:' + error);
    });

用以下代码解决了

url = ‘file:///android_asset/www/a.txt’
$http.get(url).success(function(data) {
…
})

同时测试以下代码也可以:

$cordovaFile.checkFile(cordova.file.applicationDirectory, ‘www/a.txt’).then(function(success) {
  log('applicationDirectory success:' + success);
}, function(error) {
  log('applicationDirectory error:' + error);
});  

解决方案来源

回到顶部