ionic打开外部文件插件cordova-plugin-file-opener2

opener2插件用来在强制升级中打开下载到本地的apk,中间坑多多,下面来捋一捋。首先是安装命令

ionic cordova plugin add cordova-plugin-file-opener2

npm install --save @ionic-native/file-opener

安装完成后,重新添加android平台然后报错了,报错原因是因为这句话,默认下载最新的support-v4,和本地环境有冲突。所以添加android平台之前,要先找到插件中的这句话删除。如果加了android平台,找到本地文件手动删除吧。

 但这只是第一个坑,ionic项目在android8上面不会自动去请求文件权限,并且拿到权限后打开文件也会有问题。

先加一个请求权限的插件,命令如下:

ionic cordova plugin add cordova-plugin-android-permissions

npm install --save @ionic-native/android-permissions

 然后写文件读取请求,注意文件读写是分开请求的,都要写上,记得之前只写一个另一个会默认申请。

/*检查是否有写入权限*/
check() {
 
//检查权限
 
var permissions = cordova.plugins.permissions;
 
permissions.checkPermission(permissions.WRITE_EXTERNAL_STORAGE, function (s) {
   
//hasPermission 验证是否成功
   
if (!s.hasPermission) {
     
//没有权限,app申请写入权限
     
permissions.requestPermissions([permissions.WRITE_EXTERNAL_STORAGE, permissions.READ_EXTERNAL_STORAGE], function (s) {
       
if (s.hasPermission) {
         
//申请成功
         

        }
       
else {
         
//申请失败
         
console.log("申请写入失败1")
        }
      },
function (error) {
       
console.log("申请写入失败2")
      });
    }
else {
     
//拥有权限
   

    }
  },
function (error) {
  });
}

 文件权限有了以后,还会有问题。打开文件会失败,或者自动安装apk的时候会安装完成无法打开。加上targetSDK的SDK版本为23,即只支持到Android6。参考网址:http://www.cnblogs.com/wupeng88/p/8567958.html

如果以上没有解决问题,插件还有个地方需要手动改一下,  intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//自己加的,不加此句安装成功后不会自动打开安装成功后界面。

 

猜你喜欢

转载自blog.csdn.net/qq_37302082/article/details/84232046