ionic完成下载文件并翻开功用(file-transfer和file-opener2插件)

作为一款app,下载文件功用,和翻开文件功用,在某些场景下照样非常有必要的。运用cordova-plugin-file-transfercordova-plugin-file-opener2这两个插件能够在ionic比较轻易的完成这个功用。

1、装置:

cordova plugin add cordova-plugin-file-transfer
cordova plugin add cordova-plugin-file-opener2

2、代码完成

angular.module("app").controller("accessoryDetailCtrl", ["$scope","$ionicLoading", 
  function ($scope $ionicLoading) {
    "use strict";
    
    $scope.downLoadFile = (downloadUrl) => {
      let fileTransfer = new FileTransfer(),
        uri = encodeURI(downloadUrl), // 文件的地点链接
        fileUrl = cordova.file.dataDirectory + uri.substr(uri.lastIndexOf("/") + 1); // 文件的下载地点
      fileTransfer.download(uri, fileUrl, entry => {
        entry.file(data => {
          cordova.plugins.fileOpener2.showOpenWithDialog(fileURL, data.type); // showOpenWithDialog运用手机上装置的顺序翻开下载的文件
        });
        console.log("download accessory successful. accessory information : " + JSON.stringify(entry));
      }, error => {
        console.error("download accessory fail. Because of : " + JSON.stringify(error));
      });

      fileTransfer.onprogress = function(progressEvent) { // 加载过程当中的loading提醒
        const percentFinished = 99;
        let downloadProgress = Math.round((progressEvent.loaded / progressEvent.total) * $scope.percentage);
        $ionicLoading.show({
          template: "正在下载" + downloadProgress + "%"
        });
        downloadProgress > percentFinished && $ionicLoading.hide();
      };
    };
    
  }]);

3、注意事项
file-transfer除了支撑下载另有上传文件的功用,下载的时刻要注意的是下载的地点,ios和android能够途径是差别的,能够找出雷同的途径,或许离别处置惩罚,这里运用的是cordova.file.dataDirectory,ios和android下载同一个途径

在运用file-opener2时,须要传入mineType,这个我们能够在file-transfer时猎取。
file-opener2除了我们运用的showOpenWithDialog要领,另有open要领挪用手机自带的翻开功用,能够用来完成android的版本更新,下载新版本装置(今后有时间在写,网上的相干文档也许多)
别的另有uninstall和appIsInstalled功用,项目中没有运用,就不在研讨了。

末了,在android7,android8上运用file-transfer插件有须要特别的处置惩罚,细致能够检察一下github
cordova-plugin-file-transfer

    原文作者:嘉恩Gavin
    原文地址: https://segmentfault.com/a/1190000013271346
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞