У меня были проблемы с загрузкой файла в папку «Загрузки» с моим приложением.
Я поместил свой файл config.xml и проверил на AndroidManifest.xml, и у них обоих естьявные разрешения:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.NETWORK_ACCESS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Я использую cordova-plugin-android-permissions , чтобы проверить их на лету, и они тоже там.При использовании только cordova-plugin-file + XMLHttpRequest в соответствии с рекомендациями по документам он не выдавал никаких ошибок, но при загрузке файла там не было.Когда я возвращаюсь к использованию cordova-plugin-file-Transfer , он дал мне следующий ответ:
{
body: null
code: 1
exception: "/storage/emulated/0/download/test.mp3 (Permission denied)"
http_status: 200
source: "http://192.168.0.10/test.mp3"
target: "file:///storage/emulated/0/download/test.mp3"
}
Мой текущий код следующий:
downloadFile(){
var app = this;
var permissions = cordova.plugins.permissions;
permissions.checkPermission([permissions.READ_EXTERNAL_STORAGE,permissions.WRITE_EXTERNAL_STORAGE],
/* Permission ok ok*/
function(){
let downloadUrl = "http://192.168.0.10/test.mp3";
let name = "test.mp3"
let filePath = cordova.file.externalRootDirectory + 'download/' + name
let fileTransfer = new window.FileTransfer()
let uri = encodeURI(decodeURIComponent(downloadUrl))
// Downloading the file
fileTransfer.download(uri, filePath,
function (entry) {
console.log('Successfully downloaded file, full path is ' + entry.fullPath)
console.log(entry)
},
function (error) {
console.log('error',error)
},
false
)
},
/* Asks for Permission */
function(errorLoad){
permissions.requestPermissions([permissions.READ_EXTERNAL_STORAGE,permissions.WRITE_EXTERNAL_STORAGE],
/* Permission Granted */
function(){app.requestSystem()},
/* Permissão Denied */
function(errorLoad){
console.error(errorLoad)
});
});
}
Буду признателен за любую помощь!Чего мне не хватает?