在文件上传时,由于权限问题,会报错(Permission denied),安卓6.0以上会有此问题。
通过 cordova-plugin-android-permissions 这个cordova插件来处理权限的问题。
app自动更新
1.安装插件
cordova plugin add cordova-plugin-file // 文件系统
cordova plugin add cordova-plugin-file-transfer //文件传输系统
cordova plugin add cordova-plugin-android-permissions //处理权限
cordova plugin add cordova-plugin-file-opener2 // 文件下载
2.代码
//下载apkfunction downloadFile() {$ionicLoading.show({template: "已经下载:0%"});var url = "http://192.168.0.1:8080/myApp.apk"; //可以从服务端获取更新APP的路径var filename = url.split("/").pop();var targetPath = cordova.file.externalRootDirectory + filename; //APP下载存放的路径,可以使用cordova file插件进行相关配置var trustHosts = true;var options = {};$cordovaFileTransfer.download(url, targetPath, options, trustHosts).then(function(result) {// 打开下载下来的APP$cordovaFileOpener2.open(targetPath, 'application/vnd.android.package-archive').then(function() {// 成功}, function(err) {// 错误});$ionicLoading.hide();}, function(err) {console.log(err)$ionicLoading.hide();}, function(progress) {//进度,这里使用文字显示下载百分比$timeout(function() {var downloadProgress = (progress.loaded / progress.total) * 100;$ionicLoading.show({template: "已经下载:" + Math.floor(downloadProgress) + "%"});if (downloadProgress > 99) {$ionicLoading.hide();}})});
}// 如果下载成功后无法自动打开,错误 exposed beyond app through Intent.getData() ,是版本不支持,请修改platforms>android中的AndroidManifest.xml,尽量保持android:targetSdkVersion版本在24以下,这个主要影响Android 8.x版本,
// 权限问题