我正在为已选择不使用Google Play商店的客户开发使用Phonegap Build的应用程序。相反,他们选择让我私下承载应用程序的APK文件。如何动态更新Phonegap在没有Google Play商店的情况下构建Android应用程序
我想开发一种方法来动态检查我的服务器每次启动应用程序来检查是否有更新,如果有,下载并安装该更新。
我对我的服务器做了一个ajax请求来检查最新的文件,然后我把AWS上文件的最新版本号和URL返回到我的前端。如果文件版本大于当前应用程序版本,我想更新。
这里的,现在我已经使用FileTransfer
和Web Intent
插件的PhoneGap构建代码:当我启动应用程序
$.ajax
type: 'GET'
dataType: 'json'
url: "#{baseUrl}/v2/update"
data:
app_token: 'fubar'
success: (data) =>
window.downloadApkAndroid(data)
window.downloadApkAndroid = (data) ->
fileURL = "cdvfile://localhost/persistent/#{data.filename}"
fileTransfer = new FileTransfer
uri = encodeURI(data.download_url)
fileTransfer.download uri, fileURL, ((entry) ->
alert 'download complete: ' + entry.fullPath
promptForUpdateAndroid entry
return
), ((error) ->
console.log 'download error source ' + error.source
console.log 'download error target ' + error.target
console.log 'upload error code' + error.code
alert "#{error.code} + #{error.source} + #{error.target}"
return
), false, {}
return
window.promptForUpdateAndroid = (entry) ->
alert entry
window.plugins.webintent.startActivity {
action: window.plugins.webintent.ACTION_VIEW
url: entry.toURL()
type: 'application/vnd.android.package-archive'
}, (->
), ->
alert 'Failed to open URL via Android Intent.'
console.log 'Failed to open URL via Android Intent. URL: ' + entry.fullPath
return
return
什么也没有发生,虽然。我从第一个Ajax请求中返回更新的版本,并调用成功方法。但在此之后似乎没有发生。任何人都可以告诉我更好的方法吗?或者我在这里做错了什么?