2

我已经在我的应用程序中实施了 IAP,但是我无法确定用户在付款后应该在哪里找到购买的内容。

使用我的测试帐户,当我单击购买按钮时,它会用勾号标记 IAP,好像表明它已购买但从那里我找不到内容......

有人可以帮助我了解我需要添加到我的代码和情节提要中的内容,以便用户能够访问他们购买的内容......(内容将是通过 IAP 向用户提供的几个短视频)

从我通读所有教程的内容来看,我认为我缺少的代码是这样的:

-(void)paymentQueueSKPaymentQueue *)queue updatedDownloadsNSArray *)downloads
{
    for (SKDownload *download in downloads)
    {
        switch (download.downloadState) {
            case SKDownloadStateActive:
                NSLog(@"Download progress = %f", 
                download.progress);
                NSLog(@"Download time = %f", 
                download.timeRemaining);
            break;
            case SKDownloadStateFinished:
                // Download is complete. Content file URL is at 
                // path referenced by download.contentURL. Move 
                // it somewhere safe, unpack it and give the user 
                // access to it
            break;
            default:
            break;
        }
    }
}

但是,我还需要一种方法将完成的下载传输回应用程序,然后将视图控制器链接到这些下载/购买的内容(我该怎么做?)

4

1 回答 1

0

这是我的一个应用程序中的一些示例代码,希望对您有所帮助。本质上,您要做的是确定所购买产品的索引,然后根据该索引提供内容。如果您只有一项应用内购买,那么您只需在购买通知后提供内容即可。

- (void)productPurchased:(NSNotification *)notification {

    [self makeSuccessAlert];

    NSString * productIdentifier = notification.object;
    [_products enumerateObjectsUsingBlock:^(SKProduct * product, NSUInteger idx, BOOL *stop) {
        if ([product.productIdentifier isEqualToString:productIdentifier]) {
            if (idx == 0) {
                coins = [NSNumber numberWithInteger:[coins integerValue] + 5000];
                NSLog(@"coins %d", [coins integerValue]);
                [totalCoins setString:[NSString stringWithFormat:@"%d", coins.integerValue]];
                [[NSUserDefaults standardUserDefaults] setObject:coins forKey:@"coins"];
                [[NSUserDefaults standardUserDefaults] synchronize];

            }
            if (idx == 1) {
                coins = [NSNumber numberWithInteger:[coins integerValue] + 15000];
                NSLog(@"coins %d", [coins integerValue]);
                [totalCoins setString:[NSString stringWithFormat:@"%d", coins.integerValue]];
                [[NSUserDefaults standardUserDefaults] setObject:coins forKey:@"coins"];
                [[NSUserDefaults standardUserDefaults] synchronize];
            }

            *stop = YES;
        }
    }];
}
于 2013-08-19T05:56:21.517 回答