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