2016-11-10 18 views
0

私は、ホストされたコンテンツのダウンロード機能を備えたinApp機能を実装しています。すべての製品は無制限に無料です。各製品には1つのダウンロードが関連付けられており、それはオーディオファイルです。inApp購入、無償製品のダウンロード

  1. 無料の製品を購入するダイアログが表示されない場合があります。最初のユーザーは、無料の製品を購入し、その製品が正常に購入されたというダイアログよりも、彼のリンゴidパスワードを与える必要があります。ダウンロードを要求することができます。 しかし、すべての製品が無料であるため、ユーザーはconfiramtionのダイアログとメッセージを見ずにダウンロードしてダウンロードして、imedietlyダウンロードを開始することができます。

  2. 商品が以前に購入/ダウンロードされたことがある場合は、メッセージを見て、再び商品を無料で購入します。私は復元機能を知っていますが、以前にダウンロードしたアイテムを追跡する必要があります。その場合、復元状態からダウンロードを開始してください。

ありがとう!

+0

無料の商品のアプリ内購入が必要な理由 – zombie

答えて

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)あなたは非消耗inapptの購入がある場合は、復元のためのオプションを提供しなければなりません。ダウンロードするには、あなた自身のロジックを書くことができます。アイテムがダウンロードされているかどうかを確認し、使用できない場合にのみ再ダウンロードします。

+0

回答ありがとうございます。私はすべてを理解していますが、私はSKPaymentQueueとinAppダイアログを引き起こしている支払いなしでdoanloadを開始する方法を明確にしていませんか?または、productRequest didReceiveResponseメソッドからダウンロードを開始する方法。私はこれが可能であるとは確信していません。 ダウンロードを開始する方法を少し詳しく説明してください。私のコードは動作しますが、支払いを支払いキューに追加し、ダウンロードを要求できるupdatedTransactionsを取得する必要があります。しかし、その場合、システムのinAppダイアログ/アラートが表示されます。ありがとう! :] –

+0

@NikolaJovic inapp購入ダイアログなしでダウンロードするためには、コンテンツをオンデマンドリソースとしてホストする必要があります。この購入でダウンロードしたいコンテンツにタグを割り当て、NSBundleResourceRequestのダウンロードを開始することができます。 https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/Managing.html#//apple_ref/doc/uid/TP40015083-CH4-SW1 – Darshana