我正在使用下载托管内容功能实现inApp功能。所有产品均可无限期免费使用。每个产品都有一个下载关联,即音频文件。
可以在没有用户看到对话框的情况下开始下载购买免费产品。第一个用户必须提供他的苹果ID密码,而不是他看到购买免费产品的对话框,而不是产品成功购买的对话框。可以请求下载。 但是,由于所有产品都是免费的,可以以某种方式下载,无需用户看到安全对话和消息,并开始下载imedietly。
如果之前购买/下载的项目比用户看到的消息将再次购买免费项目。我知道恢复功能,但我是否需要跟踪以前下载的项目,并在这种情况下从恢复状态开始下载。
谢谢!
答案 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)如果您购买了非消耗品,则必须提供恢复选项。下载时,您可以编写自己的逻辑。检查项目是否已下载并仅在不可用时重新下载。