2013-02-27 44 views
4

我使用苹果的Distributing Enterprise Apps for iOS Devices.提供了使用“更新应用程序分发企业应用程序为iOS设备?

在我的应用程序,这是非常重要的更新旧版本,以防止过期的信息访问分发的iPad应用程序。因此, ,我已经实施了应用更新机制,如下所示:

当用户启动应用时,每次我通过请求创建并托管在自己的服务器上的Web服务来比较安装的版本代码和服务器上的版本代码。有更新发现,我要求用户通过UIAlertView升级应用程序,当用户点击更新按钮时,我点燃了我的服务器上指向.plist的URL版本的建议here.

NSString *appUpgradeUrl = [NSString stringWithString:@"http://domain.com/manifest.plist"]; NSURL *url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@", appUpgradeUrl]]; [[UIApplication sharedApplication] openURL:url];

现在的UIAlertView在屏幕上弹出,并要求用户在确认有两个按钮在底部,取消和安装。当用户点击安装时,它会被更新的版本取代,当用户点击取消时,它就会消失并且什么也不做。

这里是我的问题:我想强制用户更新应用程序,正如我所说的,更新到更新以防止过期信息的访问非常重要。不幸的是,我无法这样做。我想要通知取消按钮的点击事件,以便我可以强制用户通过UIAlertView再次询问应用更新来更新应用。我可以这样做吗?

让我知道是否有更好的主意,比这更强制更新应用程序。

+0

如果他们必须更新为什么提供选择?即打开一个对话,说应用程序必须更新,并且不允许任何用户活动,直到它完成。 – Bejmax 2013-02-27 13:56:08

+0

@Bejmax你是对的。为此,我需要创建另一个'UIViewController'并将用户重定向到哪里,这将是一条消息用更新按钮更新应用程序。我正在寻找一个可以管理系统生成的'UIAlertView'按钮的行为的选项。无论如何感谢您的快速反应。 – 2013-02-27 14:18:08

回答

1

当您创建UIAlertView时,将您的控制器指定为代理人。

当用户单击警报视图上的按钮时,将调用alertView:clickedButtonAtIndex:。您可以根据点击按钮的索引决定如何操作,并用您需要的任何按钮设置UIAlertView。 (请参阅UIAlertViewDelegate Protocol Reference。)

+0

我想你没有正确地得到我的问题。在我的情况下,系统显示'UIAlertView'来询问用户他们是否想安装应用程序。所以我无法获得按钮点击的委托。 – 2013-03-05 10:02:09

+0

同样的问题在这里。任何与确定如何处理“取消”点击的运气。 – skaneria 2013-06-27 16:39:56

2

正如其他答案中所述,您不能成为系统警报的代表。但是,由于您的应用程序现在知道它已过时,因此它可以更改其自己的UI,例如,仅将清单URL显示为按钮,并且不允许用户在应用程序匹配某个版本之前执行任何操作。

+0

很好的答案。我只是这样做的。 – 2013-10-03 06:39:08

-1

由于我们无法访问系统生成警报的代理。我用过的解决方案是,我将用户重定向到更新屏幕。除非用户更新应用程序,否则他不能使用它的功能。

相关问题