我在应用程序中购买了一些应用程序,每个都解锁了应用程序的某些部分。
这是在应用中实际购买状态的最佳方式,但是以正确的方式?:
在实际购买或恢复购买后,在SharedPreferences
上存储购买,并在应用开始时阅读。这可能会产生问题:如果退款,应用程序将继续拥有这些值。有根的用户可以编辑xml并按原样添加购买。
在应用的启动时执行queryInventoryAsync
并将结果存储为SharedPreference,以备将来在应用中使用。如果没有网络,这将允许使用先前queryInventoryAsync
结果中的SharedPreference值。
因为Google Play客户端现在可以缓存应用内结算信息 在设备本地,您可以使用版本3 API来查询 信息更频繁,例如通过getPurchases调用。 与以前版本的API不同,许多版本3 API调用 将通过缓存查找而不是通过网络进行服务 与Google Play的连接,显着加快了API的速度 响应时间。
那该怎么办?考虑到应该使用缓存结果,每个应用启动时queryInventoryAsync
会产生任何问题吗?
答案 0 :(得分:0)
我在所有游戏中的每个应用启动时使用queryInventoryAsync
,到目前为止没有任何问题(20k用户)。