【问题标题】:How to detect if user has made any in-app purchases?如何检测用户是否进行了任何应用内购买?
【发布时间】:2014-09-11 15:31:40
【问题描述】:

我的 iOS 应用有应用内购买(消耗品)并定期展示广告。这个想法是在用户购买任何东西后删除广告。但是应用内的物品是消耗品,所以用户重新安装应用后,我无法确定他是否使用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];购买过任何东西,对吧?我会再次用广告轰炸他......

如果发现用户已经购买了任何东西,您有什么建议?

【问题讨论】:

    标签: ios in-app-purchase


    【解决方案1】:

    当用户重新安装您的应用(即删除并重新安装)时,无法立即知道他购买了什么。这就是为什么 Apple 要求您的应用程序提供一种方法来恢复以前的购买,以便当用户执行此操作时,他可以免费恢复这些购买。

    对于消耗品,您可能需要使用服务器来管理购买,以便在应用加载时检查用户购买的服务器并立即启用相关内容。

    我不知道是否强制,但“删除广告”IAP 应该是非消耗性的,因此用户只需要购买一次(否则我相信用户会抱怨或不会购买)。

    一些创造性的方法可以在这里找到:iPhone - in-App purchase consumable correct approach

    【讨论】:

    • 我认为问题在于应用内购买没有“删除广告”,但只要购买任何东西(包括消耗品),他都会删除添加。
    【解决方案2】:

    作为对这种情况的改进,您可以将购买的事实存储在 NSUserDefaults 中。如果用户卸载并重新安装应用程序,这将无法生存,但如果用户购买新手机并恢复备份以将所有内容转移到新手机,它至少可以生存。

    您也可以查看 Cloud Kit,它会根据 AppleId 存储信息。这个问题有点矫枉过正,但这意味着您可以免费使用Apple的服务器而不是您自己的服务器。不同的是,如果用户在六台设备上安装了您的应用,在一台设备上购买了消耗品,广告将在所有设备上停止。

    【讨论】:

    猜你喜欢
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多