inApp购买,下载免费产品

时间:2016-11-10 12:03:00

标签: ios objective-c swift xcode

我正在使用下载托管内容功能实现inApp功能。所有产品均可无限期免费使用。每个产品都有一个下载关联,即音频文件。

  1. 可以在没有用户看到对话框的情况下开始下载购买免费产品。第一个用户必须提供他的苹果ID密码,而不是他看到购买免费产品的对话框,而不是产品成功购买的对话框。可以请求下载。 但是,由于所有产品都是免费的,可以以某种方式下载,无需用户看到安全对话和消息,并开始下载imedietly。

  2. 如果之前购买/下载的项目比用户看到的消息将再次购买免费项目。我知道恢复功能,但我是否需要跟踪以前下载的项目,并在这种情况下从恢复状态开始下载。

  3. 谢谢!

1 个答案:

答案 0 :(得分:0)

1)是的,您可以在没有对话框的情况下下载。使用商店套件获取产品详细信息,如果产品价格是免费的(0),则无需处理Storekit的购买请求即可下载商品。

请求产品详细信息的代码:

KProductsRequest *productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithArray:productIdentifiers]];

// Keep a strong reference to the request.
self.request = productsRequest;
productsRequest.delegate = self;
[productsRequest start];

// SKProductsRequestDelegate协议方法

- (void)productsRequest:(SKProductsRequest *)request
     didReceiveResponse:(SKProductsResponse *)response
{
    self.products = response.products;

    for (NSString *invalidIdentifier in response.invalidProductIdentifiers) {
        // Handle any invalid product identifiers. or check that product you are looking for dozens has its identifier here

    }
    for (SKProduct *product in self.products) 
    {
         //for example, product you are looking for has identifier  "com.product.free"          
         if([product.productIdentifier isEqualToString:@"com.product.free"] && [product.price compareWithInt:0])
         {
               // Startdownloading without purchase  
         }

    }
}

2)如果您购买了非消耗品,则必须提供恢复选项。下载时,您可以编写自己的逻辑。检查项目是否已下载并仅在不可用时重新下载。