#iphone #ios #ipad #in-app-purchase
#iPhone #iOS #iPad #покупка в приложении
Вопрос:
Я рассматриваю дизайн приложения, следующего модели «freemium», где определенный контент является бесплатным, но пользователь может приобретать больше контента в приложении.
Меня беспокоит то, что объем контента, который они могут приобрести, составит > 20 МБ, что является пределом для загрузки приложения 3G.
Кто-нибудь пытался это сделать или есть какие-либо идеи, каковы будут последствия? Мне интересно, что произойдет, если они купят приложение в режиме 3G … придется ли им возвращаться к своему компьютеру, чтобы завершить загрузку контента, а затем синхронизировать его с телефоном?
Ответ №1:
Что касается того, что происходит с > 20 МБ при подключении 3G, это не приведет к сбою. Контент доставляется не с серверов Apple (где установлен лимит в 20 Мб), а с ваших серверов. Таким образом, загрузка будет продолжаться в обычном режиме. Однако при большом размере загрузки увеличивается вероятность того, что она не будет завершена. Здесь вы заходите, чтобы проверить, нужно ли вам предоставлять дополнительный контент, когда это возможно.
В руководстве по программированию при покупке в приложении это довольно хорошо описано.
В конечном счете, ответственность за правильную доставку контента лежит на вас. Apple предоставит механизмы, позволяющие определить, нужно ли восстанавливать покупку. Вы бы восстановили контент в ряде ситуаций (пользователь получил новый телефон, пользователь переустановил приложение, пользователю не удалось получить контент при первоначальной покупке и т.д.). Вы (как разработчик приложения) несете ответственность за доставку всего контента.
В случае наименьшей вероятности для вас, с приобретенных однажды непотребляемых товаров больше никогда не будет взиматься плата. То есть, если они покупают товар один раз, попытка купить его вторая (из-за того, что приложение не понимает, что оно было куплено) StoreKit вернет успешную покупку, но не взимает плату с пользователя.
На более активном уровне вы можете получить список приобретенных товаров через restoreCompletedTransactions
при запуске приложения и предоставить любой недостающий контент.