2016-11-10 3 views
0

Я реализую функции inApp с возможностью загрузки размещенного контента. Все продукты бесплатны в течение неограниченного времени. Каждый продукт имеет одну связанную загрузку, и это аудиофайл.inApp купить, бесплатно загрузить

  1. Можно начать загрузку без просмотра пользователем диалогового окна для покупки бесплатного продукта. Первый пользователь должен указать свой пароль id Apple, чем он видит диалог, чтобы купить бесплатный продукт, а не диалог о том, что продукт успешно куплен. Загрузка может быть запрошена. Но так как все продукты бесплатны, можно как-то загрузиться, если пользователь не будет видеть диалоговые окна и сообщения о конфирах и начать загрузку 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

Спасибо за ответ. Я все понимаю, но я не понимаю, как начать doanload без SKPaymentQueue и платежей, вызывающих диалоги inApp? Или как начать загрузку из метода productRequest didReceiveResponse. Я не уверен, что это возможно. Можете ли вы предоставить немного больше кода, как начать загрузку. Мой код работает, но должен добавлять платежи в очередь платежей и получать обновленные транзакции, где я могу запрашивать загрузки. Но в этом случае появляются диалоговые окна /App системы. Благодаря! :] –

+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

Смежные вопросы