【问题标题】:Providing updated apps using "Distributing Enterprise Apps for iOS Devices'?使用“为 iOS 设备分发企业应用程序”提供更新的应用程序?
【发布时间】:2013-02-13 08:29:21
【问题描述】:

我正在使用苹果的 Distributing Enterprise Apps for iOS Devices. 分发 iPad 应用程序

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

当用户启动应用程序时,每次我通过请求我在自己的服务器上创建和托管的 Web 服务来将已安装的构建版本代码与服务器上的版本代码进行比较。如果找到更新,我会要求用户通过UIAlertView 升级应用程序,当用户点击更新按钮时,我会按照建议here. 触发指向我服务器上.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 再次询问应用程序更新来强制用户更新应用程序。我可以这样做吗?

如果有比这更好的想法来强制更新应用,请告诉我。

【问题讨论】:

  • 如果他们必须更新,为什么要提供选择?即打开一个对话框,说明应用程序必须更新并且在完成之前不允许任何用户活动。
  • @Bejmax 你是对的。为此,我将需要创建另一个 UIViewController 并将用户重定向到它,其中将显示一条消息以使用更新按钮更新应用程序。我正在寻找一个选项,我可以管理系统生成的UIAlertView 按钮的行为。无论如何,感谢您的快速响应。

标签: ios uialertview updates in-house-distribution


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      alertView:clickedButtonAtIndex: 在用户单击警报视图上的按钮时被调用。您可以根据单击的按钮的索引决定要做什么,并使用您需要的任何按钮设置UIAlertView。 (见UIAlertViewDelegate Protocol Reference。)

      【讨论】:

      • 我认为您没有正确理解我的问题。在我的情况下,系统会显示UIAlertView 来询问用户是否要安装应用程序。所以我无法获得其按钮点击的代表。
      • 这里也是同样的问题。确定如何处理“取消”点击的任何运气。
      猜你喜欢
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多