4

我正在使用苹果的为 iOS 设备分发企业应用程序分发 iPad 应用程序。

在我的应用程序中,更新旧版本以防止访问过期信息非常重要。因此,我实现了应用程序更新机制如下。

当用户启动应用程序时,每次我通过请求我在自己的服务器上创建和托管的 Web 服务来将已安装的构建版本代码与服务器上的版本代码进行比较。如果找到更新,我会要求用户通过升级应用程序,当用户点击更新按钮时,我会按照此处UIAlertView的建议触发指向我服务器上 .plist 的 URL 。

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。我可以这样做吗?

让我知道是否有比这更好的想法来强制更新应用程序。

4

3 回答 3

2

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

于 2013-07-15T19:57:27.790 回答
1

在创建UIAlertView.

alertView:clickedButtonAtIndex:用户单击警报视图上的按钮时调用。您可以根据单击的按钮的索引来决定要做什么,并UIAlertView使用您需要的任何按钮进行设置。(请参阅UIAlertViewDelegate 协议参考。)

于 2013-02-27T18:24:38.817 回答
-1

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

于 2013-10-03T06:42:33.113 回答