iOS是否有类似于Android的应用内更新的功能?

18
我已经开发了一款适用于Android和iOS的移动应用程序。现在我们每周有2个更新需要发布。大多数情况下,Android和iOS用户会停止自动更新应用程序。但是,如果有关键更新、错误修复或新功能,则必须要求用户更新应用程序以获得更好的可用性。为此,我发现Android有一个名为In App Updates API的API。它说道:
“使用户设备上的应用程序保持最新状态可以让他们尝试新功能,并从性能改进和错误修复中受益。虽然某些用户在其设备连接到未计费连接时启用后台更新,但其他用户可能需要被提醒更新。内部应用程序更新是Play Core库功能,它引入了一个新的请求流来提示活跃用户更新应用程序。”
然而,我无法找到类似的或相似的功能适用于iOS。我不确定Push Notification是否可以做到同样的事情。请给予建议。
2个回答

10

没有用户设置自动更新,应用程序将无法更新或下载。

但是您可以尝试另一种方法。例如,当应用程序打开或进入前台时,调用API/ Web服务以检查基于应用程序当前版本是否发布了任何关键更新?根据YES / NO响应,在单击“确定”后向用户显示新的更新可用,并将他们带到Apple商店。


6
不,iOS没有像Android那样的自动更新功能。推送通知在这方面无法很好地发挥作用,因为1)用户可能禁止推送通知,2)推送通知不知道用户当前使用的版本。
如果您的应用程序调用后端的Web API或Web服务,那么对于应用程序调用Web服务中的getVersion() 方法是相当简单的。Web服务读取配置文件中设置的当前版本,并将其返回给应用程序。它还可以返回一个标志,指示是否必须(Mandatory)更新,可能值为Y或N。
在您的应用程序中,每次启动时都要调用getVersion() 方法。如果应用程序的版本号小于getVersion() 返回的版本号,则检查是否必须更新的标志已设置为' Y'。如果是,则显示一个对话框,表示在使用应用程序之前需要进行强制更新,是否现在安装? 如果是,导航到iTunes 应用商店页面并退出应用程序。如果不是,则退出应用程序。直到他们更新,每次尝试运行应用程序时都会收到相同的消息。
如果必须更新的标志设置为' N',则显示一个对话框,表示有新版本可用,是否现在安装? 如果是,则导航到iTunes 应用商店页面并退出应用程序。如果不是,则允许应用程序打开并继续。然而,每次应用程序打开时都会提示用户更新。
如果您将平台作为参数传递给getVersion(String platform) 方法,您可以使getVersion() 方法适用于iOS和Android。然后,根据传递到平台参数中的值,从配置文件中读取android_version或ios_version(因为版本号可能会在平台之间有所不同)。

感谢您提供详细的答案。我喜欢您的想法。关于这个问题,有两个名为CodePushSiren的API。它们之间有什么区别吗?使用自定义编码还是使用这些API中的一个更好呢? - Sukhjinder Singh
首先,问题是你的应用程序是否需要调用任何外部API来进行常规操作。如果不需要,则必须进行外部调用以进行版本检查有点麻烦。但是,如果应用程序不进行任何外部调用,则它真正是自包含的,因此,如果一个人使用旧版本的应用程序,则不应该有问题。如果应用程序使用专用API,则应在该处添加getVersion()方法,而不是第三方API。 - Michael Dougan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接