2016-11-14 77 views
1

我用這個代碼從我的本地安卓科爾多瓦應用觸發更新程序

function downloadApkAndroid(data) { 
var fileURL = "cdvfile://localhost/persistent/path/to/Download/"; 

var fileTransfer = new FileTransfer(); 
var uri = encodeURI(data); 

fileTransfer.download(
    uri, 
    fileURL, 
    function (entry) { 

     console.log("download complete: " + entry.fullPath); 

     promptForUpdateAndroid(entry); 
    }, 
    function (error) { 
     console.log("download error source " + error.source); 
     console.log("download error target " + error.target); 
     console.log("upload error code" + error.code); 
    }, 
    false, 
    { 

    } 
); 

}

我得到了成功donwload然後它會調用這個函數promptForUpdateAndroid(entry);嘗試安裝下載的APK這其中功能包含此

function promptForUpdateAndroid(entry) { 
console.log(entry); 
window.plugins.webintent.startActivity({ 
     action: window.plugins.webintent.ACTION_VIEW, 
     url: entry.toURL(), 
     type: 'application/vnd.android.package-archive' 
    }, 
    function() { 
    }, 
    function() { 
     alert('Failed to open URL via Android Intent.'); 
     console.log("Failed to open URL via Android Intent. URL: " + entry.fullPath); 
    } 
); 

}

它調用該函數後,我得到警報

解析錯誤 - 有解析包時出現問題

我認爲是指定fileurl var fileURL = "cdvfile://localhost/persistent/path/to/Download/";是錯誤的,但我真的不知道什麼是真正的路徑是。請幫我

+0

我發現從這裏的服務器下載的文件///data/user/0/com.app.nEnhance/files/files/path/to/android.apk當我嘗試點擊安裝我得到了同樣的錯誤,這是解析錯誤.. –

回答

0

好的我已經解決了我的問題。我放在這裏,因爲有人得到同樣的問題。其真正的這條道路,我把是錯誤實際上是因爲我得到了APK我下載表格服務器,但由於它北醫三院在root用戶不能安裝它becaue它沒有權限,所以我改變路徑

var fileURL = cordova.file.externalDataDirectory+'android.apk'

然後成功下載文件後,web intent會自動提示用戶是否安裝。

相關問題