gpt4 book ai didi

android - 如何在没有 Google Play 商店的情况下动态更新 Phonegap Build Android 应用程序

转载 作者:行者123 更新时间:2023-11-30 01:34:09 25 4
gpt4 key购买 nike

我正在使用 Phonegap Build 为选择不使用 Google Play 商店的客户开发应用。相反,他们选择让我私下托管该应用程序的 APK 文件。

我正在尝试开发一种方法,在每次启动应用程序时动态检查我的服务器,以检查是否有更新,如果有,则下载并安装该更新。

我向我的服务器发出 ajax 请求以检查最新文件,然后我将 AWS 上文件的最新版本号和 URL 返回到我的前端。如果文件版本大于当前应用程序版本,我想更新。

这是我现在为 Phonegap Build 使用 FileTransferWeb Intent 插件的代码:

$.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 请求返回一个较新的版本,并且正在调用成功方法。但在那之后似乎什么也没有发生。谁能告诉我执行此操作的任何更好方法或我在这里做错了什么?

最佳答案

您是否考虑过使用 Cordova Hot Code Push plugin ,这将允许您更新应用程序的 www 文件夹(应用程序 View 、JS、CSS、任何图像等),而无需执行 Google Play 更新。此方法允许您在 apk 中发布应用程序的一个版本,并定期从服务器获取更新,而无需自己构建样板文件获取代码。

关于android - 如何在没有 Google Play 商店的情况下动态更新 Phonegap Build Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com