使用MKStoreKit实现两个耗材

Ole*_*man 2 in-app-purchase ios mkstorekit

我应该如何用MKStoreKit实现两个消耗品?如果我有两个消耗品,例如"少量硬币"(10个硬币)和"带硬币的袋子"(100个硬币).我有两个问题:

  1. 产品ID应该如何?

  2. 如何获得所购买硬币的总金额,包括少数几个和一个或多个硬币?

    Amount = 10*handfuls_purchased + 100*bags_purchased;
    
    Run Code Online (Sandbox Code Playgroud)

我已经在正式的MKStoreKit博客上阅读了教程,但我仍然无法解决这个问题.

Ps我正在使用MKStoreKit 3.1并且因为ARC而无法更新到更新的版本(我的项目不支持它)

Mug*_*nth 5

您的plist耗材钥匙应如下所示.

<key>Consumables</key>
    <dict>
        <key>com.yourcompany.yourapp.handfulofcoins</key>
        <dict>
            <key>Count</key>
            <integer>10</integer>
            <key>Name</key>
            <string>CoinsInMyApp</string>
        </dict>
<key>com.yourcompany.yourapp.bagofcoins</key>
        <dict>
            <key>Count</key>
            <integer>100</integer>
            <key>Name</key>
            <string>CoinsInMyApp</string>
        </dict>
    </dict>
Run Code Online (Sandbox Code Playgroud)

我匹配字符串"CoinsInMyApp"来计算购买的硬币数量,无论它们来自哪种消耗品.在上面的示例中,如果用户购买1个bagofcoins和2个handfulofinins,MKStoreManager将为关键CoinsInMyApp存储120.

方法,

- (BOOL) canConsumeProduct:(NSString*) productIdentifier
- (BOOL) canConsumeProduct:(NSString*) productIdentifier quantity:(int) quantity
Run Code Online (Sandbox Code Playgroud)

会告诉你你是否有足够的产品.

当玩家使用硬币时,你应该让MKStoreKit通过调用来了解这一点

- (BOOL) consumeProduct:(NSString*) productIdentifier quantity:(int) quantity
Run Code Online (Sandbox Code Playgroud)

你可以通过电话获得硬币数量

[[MKStoreManager numberForKey:@"CoinsInMyApp"] intValue];
Run Code Online (Sandbox Code Playgroud)

PS:您可以在非ARC项目中使用MKStoreKit最新版本,使用-fobjc-arc标志进行编译.

我在这里写了这篇文章http://blog.mugunthkumar.com/articles/migrating-your-code-to-objective-c-arc/