ios - 如何在 iOS 内部重启应用程序?

标签 ios objective-c in-app-purchase

我一直在尝试将应用程序内购买合并到我的 iOS 应用程序中,想要对屏幕上显示的广告感到恼火的用户可以通过购买该产品来禁用这些广告。该应用程序使用 UITabBarController,用户可以在其上购买产品的屏幕与用户看到广告的屏幕不同 - 换句话说,我在 中的不同选项卡上设置了不同的 View Controller UITabBarController.

但是,当用户完成购买产品后,他们仍然会在屏幕上看到这些广告,只有在用户下次启动该应用后,这些广告才会从屏幕上完全移除。

但是,Apple 文档推断他们拒绝强制用户重新启动应用程序的应用程序。我认为这包括我现在正在谈论的情况,所以我想知道如何在内部重新启动应用程序 - 换句话说,我想重新启动应用程序,就好像它只是在应用程序内从头开始启动一样,可能是调用 UIApplication 及其方法或类似的方法。

如何以这种方式重新启动应用程序?或者,这可能是解决此采购问题的更好方法?此外,如果可以从应用程序内重新启动,我是否应该在管理应用程序内购买的 View Controller 中编写支付代码(SKProductsRequestSKPaymentTransactionObserver),或者在 AppDelegate.m 中?

我使用 iOS 7.1 和 Xcode 5.1。

最佳答案

适当隐藏 AdBannerView。您可以在 NSUserDefaults 中设置一个标志,表明用户进行了购买,并在显示包含广告的 View 时触发该标志。

参见:Programmatically hiding Apple iAd ADBannerView

关于ios - 如何在 iOS 内部重启应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22996208/

相关文章:

ios - 如何在 Swift 中调整 TableView 标题的缩进?

ios - 在 iOS swift 中使用 Apple Pay

ios - Objective C 的 iPhone 开发中的 "delegate"是什么?

ios - 从 Apple Watch 应用程序到其他设备的本地网络连接在模拟器上有效,但在 Watch 上无效

ios - 添加和删​​除事务队列观察器 - 正确的方法?

android - 检索消费项目的历史

ios - 核心数据轻量级迁移 - 现有实体是否添加了新属性?

objective-c - 将分隔符颜色更改为背景色或将其从 NSTableView 中删除

php - 如何使用 php 验证 Apple IAP 收据?

ios - 从 iphone 上传 pdf 文件