我正在开发一款可在应用内购买非耗材的应用。
非耗材内置于应用程序中,而不是从服务器下载,因此实际上我们只是授予对内容的访问权。
我们的应用:
何时是start
上的SKProductsRequest
来从iTunes Connect获取产品等的最佳时间?在application:didFinishLaunchingWithOptions:
?或者在我的控制器加载时?
我应该多久更新一次产品信息?每当屏幕加载?什么时候出现?应用程序启动后?
答案 0 :(得分:0)
一个好的解决方案是实施推送通知,每当您更改价格时,向应用广播推送通知,这将获取新价格!
<强>更新强>
如果当时无法使用互联网,那么您可以使当前价格无效,以便在再次启动应用时更新价格!您可以在BOOL
中存储NSUserDefaults
,告知价格是否是最新的。
答案 1 :(得分:0)
我使用NSNotificationCenter想出了我自己的解决方案。
基本上,我的流程是这样的:
ProductList
课程以更新产品列表。ProductList
班级更新产品列表。ProductList
方法update_all
仅在以下情况下执行iTunesConnect请求:
由于我想处理用户在没有互联网连接的情况下启动设备并在连接之前加载可购买内容的情况,我设置了一个观察者。
从iTunes连接中检索到产品后,我会向可能正在观察的任何视图发送NSNotification,以便他们可以更新价格等。
希望有意义并帮助某人?
答案 2 :(得分:-1)
如果您想动态显示In App Purchase的价格,我认为您不应该在应用程序didFinishLaunchingWithOptions中调用方法。
因为每次只有在您的应用启动时才会调用它。如果您的应用程序正在运行,并且您当时更改了应用程序的价格层,那么用户将无法在此时看到该更改。用户必须再次启动该应用程序。
所以你应该从你的viewcontroller的ViewWillAppear方法中调用它。这就是我为我的一个项目所做的。
因此,如果您随时从itunes更改价格层,那么即使您的应用程序正在运行,每当用户访问该视图时,都会看到更改。
希望它对你有所帮助。