1. 程式人生 > >ionic開啟外部檔案外掛cordova-plugin-file-opener2

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);//自己加的,不加此句安裝成功後不會自動開啟安裝成功後介面。