Android Phonegap 3.5.0 Cordova文件API错误:无法读取属性';数据目录';未定义的
我们必须使用PhoneGap build和Apache Cordova为iOS和Android构建一个应用程序。 Phonegap版本是3.5.0。我们希望在互联网连接可用时更新应用程序。因此,我们需要将一些图像文件从在线服务器下载到本地文件系统,并将其下载到应用程序(iOS和Android)中。 下面是使用的示例JavaScript代码:Android Phonegap 3.5.0 Cordova文件API错误:无法读取属性';数据目录';未定义的,android,ios,file,cordova,Android,Ios,File,Cordova,我们必须使用PhoneGap build和Apache Cordova为iOS和Android构建一个应用程序。 Phonegap版本是3.5.0。我们希望在互联网连接可用时更新应用程序。因此,我们需要将一些图像文件从在线服务器下载到本地文件系统,并将其下载到应用程序(iOS和Android)中。 下面是使用的示例JavaScript代码: try{ //The directory to store data var store; //Used for status up
try{
//The directory to store data
var store;
//Used for status updates
var $status;
//URL of our asset
var assetURL = "https://raw.githubusercontent.com/cfjedimaster/Cordova-Examples/master/readme.md";
//File name of our important data file we didn't ship with the app
var fileName = "mydatafile.txt";
//////////////////////
alert("Checking for data file.");
//Check for the file.
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, onError);
/////////////////////////////
} catch(e){
alert(e.message);
}
function downloadAsset() {
var fileTransfer = new FileTransfer();
alert("About to start transfer");
fileTransfer.download(assetURL, store + fileName,
function(entry) {
alert("Success!");
appStart();
},
function(err) {
alert("Error!");
console.dir(err);
alert(err);
});
}
//I'm only called when the file exists or has been downloaded.
function appStart() {
// $status.innerHTML = "App ready!";
alert( "App ready!");
}
function onFileSystemSuccess() {
try{
store = cordova.file.dataDirectory;
//Check for the file.
window.resolveLocalFileSystemURL(store + fileName, appStart, downloadAsset);
} catch(e){
alert(e.message);
}
}
function onError(){
alert('error');
}
启动应用程序时,结果是2个警报:
- 无法读取未定义的
//警报(e.message)的属性“dataDirectory”代码>
- 错误
//警报('Error')代码>
- 好的,我们发现了问题!
在应用程序内部,我们使用下载版本的cordova插件包含cordova js文件,该插件包含在应用程序的
js
文件夹中。
因此,与以下内容不同:
<script type="text/javascript" src="js/cordova.js"></script>
建议键入:
<script type="text/javascript" src="cordova.js"></script>
Phongap将添加cordova文件本身 这听起来可能很愚蠢,但对于所有类型的“无法读取属性”问题,您也可以尝试
rm-rf插件
cordova/ionic platform移除xxx
cordova/ionic platform添加xxx
它解决了我的问题,这真的毫无意义。谁会想到插件本身会出错呢?是
窗口。请求文件系统
在启动deviceReady后执行吗?是的,它是在启动deviceReady事件后执行的。您是否为该平台正确安装了文件插件?您可能正在使用PhoneGap构建,还是仅使用普通Cordova CLI?文件插件是从config.xml文件中用于PhoneGap构建的。插件有时会出现需要修复的错误,此问题在许多环境中都会发生。。。