сохранение состояния для покупок в приложении в приложении для iPhone?

#iphone #objective-c #ios

#iPhone #objective-c #iOS

Вопрос:

Я получил образец кода онлайн о покупках в приложении. Когда покупка завершится, я хочу, чтобы значение указывало, что она куплена.

Например, целое число в приложении может быть равно 1 или строка может содержать «Купил». Пользователь этого не увидит, это просто для справки. Когда пользователь в следующий раз перейдет к витрине магазина, если он нажмет кнопку, я хочу, чтобы он проверил, равно ли это значение 1 или Куплено. Если это так, я попрошу его перейти на следующую страницу оттуда.

Как это можно сделать?

Ответ №1:

Ознакомьтесь с этим руководством по покупкам в приложении.

Редактировать:

Существует довольно много способов достичь того, что вы ищете. Никто не напишет ваш код за вас (если только вы не наймете их; -D ). Вам следует подробнее изучить платформу StoreKit, чтобы лучше понять, как это работает. Затем вы узнаете, как управлять покупками и как проверить, приобретен ли товар.

Для покупок в приложении мне нравится использовать классы покупок в приложении UrbanAirship.

Таким образом я сохраняю локальные вкладки для товаров, приобретенных в одном из моих приложений:

   (void) updateProductsFromPurchases
{
    if ([[NSFileManager defaultManager] fileExistsAtPath:PRODUCT_IDS] == NO) {
        [[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"Products" ofType:@"plist"] 
                                                toPath:Strings(DOC_DIR,@"/Products.plist")
                                                 error:nil];
    }
    /*  update our product id list so we display updated products to the user  */
    NSArray *downloads = [FILEMANAGER contentsOfDirectoryAtPath:DOWNLOADS error:nil];
    for (NSString *purchased in downloads) 
    {
        if ( [purchased hasPrefix:@"com"] ) 
        {
            /*  for each purchase, add it to the list of product id's  */
            NSMutableArray *addPurchase = [NSMutableArray arrayWithContentsOfFile:PRODUCT_IDS];
            /*  this is to make sure we don't add duplicate product id's  */
            if ( ! [addPurchase containsObject:purchased] ) 
            {
                [addPurchase addObject:purchased];
                [addPurchase writeToFile:PRODUCT_IDS atomically:YES];
            }
        }
    }
}
  

Комментарии:

1. Это действительно не помогло. Я все еще немного сбит с толку. Не мог бы кто-нибудь, пожалуйста, уделить несколько минут и написать строки кода? Спасибо, я действительно ценю помощь.

2. Каждый может обращаться со своими приобретенными товарами по-разному, возможно, опубликуйте часть кода, который вы используете для проверки своих покупок. Я отредактировал свой ответ с примером того, как я проверяю наличие своих покупок и обрабатываю их соответствующим образом.