如何在不重建 apk 的情况下更新现有已安装应用程序的 Ionic 资产文件夹?

Posted

技术标签:

【中文标题】如何在不重建 apk 的情况下更新现有已安装应用程序的 Ionic 资产文件夹?【英文标题】:how to update Ionic's assets folder for existing installed app, without rebuilding apk? 【发布时间】:2021-07-12 16:05:58 【问题描述】:

我正在开发离线 Ionic + Angular(android 目标)应用程序,其中所有数据都显示在存储在 assets 文件夹中的 json 中。

应用程序本来是离线工作的,但是当json 数据有更新时,我现在正在重建 APK 以在资产中提供更新的数据。

我想在不提供新 APK 的情况下使用更新后的 JSON 更新资产,可以吗?

Ionic 是否有任何功能,用户可以上传新的json 文件,可以在资产中添加/更新/替换以刷新数据而无需重建 APK?

我相信 json 存储在资产中是 APK 包的一部分,我需要将 json 存储在其他地方吗

SQLite 数据库 手机内存/文件存储

或者更新数据库也需要重建APK?

请建议管理这种情况的最佳方法。

【问题讨论】:

APK 无法更改,因为这会导致其签名发生更改。您可以将文件保存在 App 的文件夹中,并在回退到 Assets 文件夹之前检查其中是否有 JSON 文件。这种方式需要完全不同的编码方式,所以... 使用这个插件来存储你的数据:ionicframework.com/docs/native/sqlite 感谢@emandt 建议将其存储在 App 的文件夹中,我会试试看。 【参考方案1】:

不生成新的 Build 就无法更新资产

如果您使用的是cordova,则可以尝试Codepush。这是向应用推送更新的绝佳解决方案

或者您可以将数据存储到数据库并进行管理。

【讨论】:

感谢 @Vijay 分享 CodePush 服务,但如果我们有任何其他存储解决方案,如问题中提到的,那么想先采用这种方法 您可以使用数据库来存储您的数据,然后如果您更改数据,它会将更新的数据反映到您的应用程序中。我建议使用firebase。其他解决方案是 Ionic 自己的 AppFlow 服务。这就像 codepush 但更好。 ionic.io/appflow

以上是关于如何在不重建 apk 的情况下更新现有已安装应用程序的 Ionic 资产文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用文件或文件路径的情况下获取文件系统(不仅仅是已安装的)中 APK 文件的信息?

如何在不使用 Playstore 的情况下发送 App 更新和自动安装?

如何在不重建所有 RemoteView 的情况下部分更新应用小部件中的视图

在不更改 IOS 7 的情况下更新现有应用程序

我可以在不更新任何 apk 版本或其他内容的情况下更新 Play 控制台上的商品详情吗?我的应用已经发布

如何在没有 root 访问权限的情况下获取已安装应用程序的 APK?