我上周推出了一款适用于iOS和Android的移动应用程序(如果这会产生任何影响,可以使用离子框架进行构建)。实际上,它更像是测试版。 现在,有人安装了该应用程序。不是很大,但无论如何。 我现在开发了一个新版本。事实是应用程序依赖于服务器。服务器改变了很多东西。 因此,商店中的客户端应用程序与服务器代码并不真正同步。 当我发布这个应用程序的更新版本时,那些使用" old"应用程序将获得真正无法预测的结果。
有没有标准的方法来面对这个?我无法通知用户该应用程序已过期,但仅依靠操作系统告诉用户有新版本可用。
答案 0 :(得分:2)
这实际上是一个与任何特定平台无关的一般编程问题。
您的应用版本1需要服务器API的版本1,然后您需要将服务器更新为其应用版本2的API版本2.
在您的应用版本2发布后,您的用户群将混合使用您应用的版本1和版本2.
这意味着您的服务器需要能够响应其两个版本的API。有几种可能的方法可以支持这一点。
String vName, vCode;
try {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
vName = pInfo.versionName;
vCode = Integer.toString(pInfo.versionCode);
} catch (Exception) {
Log.d("App","Error!");
}
参数,您可以让服务器采用版本1。关键是应用程序的第1版就在那里。服务器需要在一段时间内继续支持其API版本。服务器需要一种方法来支持两者。因此,应用程序的第2版现在可以在发布之前修复,以便在服务器上进行任何更改以支持其旧API和新API。
答案 1 :(得分:2)
现在也许有点晚了,但有了计划:
1)让您的服务器“存储”应用程序的最新版本号(我使用Firebase)。当您的应用运行时,请根据存储在服务器上的版本号检查其版本号。因此,如果应用程序已过期,您可以立即显示一条消息,通知用户更新。 (甚至可能还会从服务器检索自定义消息,通知他们此特定更新的相对重要性)
2)如果可行,您可以确保服务器同时维护旧版本和新版本的工作代码。在您的Google Analytics上,一旦您看到每个人都使用新版本,您就可以删除旧的支持代码。
答案 2 :(得分:1)
作为应用程序开发人员,这需要始终处于最重要的位置。这种情况会发生,也经常发生。
您应该做的是对服务器的每个请求,您应该提供应用程序版本。然后,您的后端应使用此应用版本来解释您的请求参数并相应地为移动应用提供服务。
在Android上,您可以使用以下内容获取您的应用版本:
USE database1
答案 3 :(得分:1)
如果您使用了push notification
,则可以使用它,或者您可以切断此应用的API服务,以强制用户重新安装您的应用。
答案 4 :(得分:-1)
假设您的应用程序的旧版本尝试与您的服务器通信,您可以在服务器上轻松检测到这一点并告诉用户应用程序需要更新(例如Whatsapp /其他消息传递客户端)。