Question

Je voudrais être en mesure de déterminer qui emmagasinent l'utilisateur se connecte à l'intérieur de mon application, afin que je puisse les diriger vers un contenu approprié pour leur appareil et à stocker. Est-ce que quelqu'un sait comment obtenir ces informations?

En fait, si l'utilisateur est au Royaume-Uni, et se connecte au magasin au Royaume-Uni, je veux que ma fonction / méthode pour revenir GB, si en Corée, je veux KR, Australie = UA etc. Toute aide serait appréciée.

Était-ce utile?

La solution

L'approche d'obtenir le code du pays du lieu de l'utilisateur ne fonctionnera ... mais seulement si le magasin iTunes de l'utilisateur est le même que leur région. Ce ne sera pas toujours le cas.

Si vous créez un, vous pouvez utiliser les API StoreKit d'Apple pour découvrir le pays iTunes réelle de l'utilisateur, même en application l'article d'achat, si elle est différente de leur lieu de périphérique. Voici un code qui a fonctionné pour moi:

- (void) requestProductData
{
    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:
                                 [NSSet setWithObject: PRODUCT_ID]];
    request.delegate = self;
    [request start];
}

- (void) productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
    NSArray *myProducts = response.products;
    for (SKProduct* product in myProducts) {
        NSLocale* storeLocale = product.priceLocale;
        storeCountry = (NSString*)CFLocaleGetValue((CFLocaleRef)storeLocale, kCFLocaleCountryCode);
        NSLog(@"Store Country = %@", storeCountry);
    }

    [request release];

    // If product request didn't work, fallback to user's device locale
    if (storeCountry == nil) {
        CFLocaleRef userLocaleRef = CFLocaleCopyCurrent();
        storeCountry = (NSString*)CFLocaleGetValue(userLocaleRef, kCFLocaleCountryCode);
    }

    // Now we're ready to start creating URLs for the itunes store
    [super start];
}

Autres conseils

Une façon difficile d'obtenir cette fonction est de mettre en place une application unique pour tous les pays de l'app store. Chaque application possède son propre magasin d'informations de pays. Cela suppose, qu'un utilisateur colle à un magasin, qui devrait être vrai pour la plupart des gens.

Je vous suggère d'essayer iTunes liens profonds . Par exemple, http://itunes.com/apps/appname devrait prendre l'utilisateur à l'App locale magasin où elle passe l'argent.

J'ai besoin les mêmes fonctionnalités. En ce moment, je songe à lire à partir des données de NSLocale par défaut, mais en ajoutant un paramètre dans settings.app pour l'utilisateur de personnaliser ce si elle ne correspond pas.

Cette fonction est prise une réponse à une autre question de la mienne .

- (NSString *)getUserCountry
{
    NSLocale *locale = [NSLocale currentLocale];
    return [locale objectForKey: NSLocaleCountryCode];
}

Vous devriez probablement utiliser

[[userDefaults dictionaryRepresentation] objectForKey:@"NSLocaleCode"];

Ceci renvoie un code de langue comme en_US ou en_UK ou en_AU ou même zh_CN, zh_MY, jp_JP et ainsi de suite.

Parse les bons codes qui vous soutiennent et les diriger en conséquence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top