2010-03-29 13 views
21

मैं यह निर्धारित करने में सक्षम होना चाहता हूं कि उपयोगकर्ता मेरे ऐप के अंदर से कौन सा स्टोर कनेक्ट करता है, ताकि मैं उन्हें अपने डिवाइस और स्टोर के लिए कुछ उचित सामग्री पर निर्देशित कर सकूं। क्या कोई इस जानकारी को प्राप्त करने के बारे में जानता है?आईफोन/आईपॉड टच/आईपैड पर सक्रिय आईट्यून स्टोर का पता कैसे लगाया जाए?

असल में, यदि उपयोगकर्ता यूके में है, और यूके स्टोर से जुड़ता है, तो मैं चाहता हूं कि कोरिया में, मैं केआर, ऑस्ट्रेलिया = एयू इत्यादि चाहता हूं, तो मेरी सहायता/विधि जीबी वापस लौटना चाहती है। किसी भी मदद की सराहना की जाएगी।

उत्तर

33

काम करेंगे उपयोगकर्ता किसी भी स्थान के देश कोड प्राप्त करने का दृष्टिकोण ... लेकिन केवल तभी जब उपयोगकर्ता के iTunes स्टोर उनके स्थान के रूप में एक ही है। यह हमेशा मामला नहीं होगा।

यदि आप इन-ऐप खरीद आइटम बनाते हैं, तो आप उपयोगकर्ता के वास्तविक आईट्यून्स देश को खोजने के लिए ऐप्पल के स्टोरकिट एपीआई का उपयोग कर सकते हैं, भले ही यह उनके डिवाइस लोकेल से अलग हो। यहां कुछ कोड है जो मेरे लिए काम करते हैं:

- (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]; 
} 
+1

मेरे लिए पार्टी के लिए थोड़ा देर हो चुकी है, और अब मुझे इसका उपयोग करने का कोई मौका नहीं होगा। अगर कोई और सत्यापित करता है कि यह वास्तव में काम करता है, और आप कुछ अप-वोट प्राप्त कर सकते हैं, तो मैं इसे उत्तर के रूप में पुनः चिह्नित करूंगा। यह बहुत समय पहले है, लेकिन मुझे पूरा यकीन है कि स्टोरकिट एपीआई तब वापस नहीं था। – pms1969

+0

यह काम करता है। मैं एक ही कोड का उपयोग नहीं करता, लेकिन 'product.priceLocale' से आईट्यून्स स्टोर मुद्रा कोड पढ़ने का विचार निश्चित रूप से काम करता है। – cheeesus

+0

धन्यवाद - यह काम करता है। –

0

इस फ़ंक्शन को पाने का एक कठिन तरीका प्रत्येक ऐप स्टोर देश के लिए एक ऐप सेट अप करना है। प्रत्येक ऐप में अपनी खुद की देश की दुकान की जानकारी होती है। यह मानता है कि एक उपयोगकर्ता एक स्टोर में चिपक जाता है, जो ज्यादातर लोगों के लिए सच होना चाहिए।

+0

वास्तव में समाधान का प्रकार नहीं है जिसे मैं ढूंढ रहा हूं, हालांकि, एक बाध्य में, मैं ऐसा करूँगा। मुझे यकीन है कि एक आसान तरीका है, मुझे नहीं पता कि यह क्या है। – pms1969

-3

आप शायद का उपयोग

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

यह en_US या en_UK या en_au या यहाँ तक कि zh_CN, zh_MY, jp_JP और इतने पर की तरह एक भाषा कोड वापस आ जाएगी चाहिए।

उन सही कोडों को पार्स करें जिन्हें आप समर्थन करते हैं और उन्हें तदनुसार निर्देशित करते हैं।

+0

धन्यवाद मुगुनथ, लेकिन लोकेल और स्टोर जरूरी नहीं है कि एक ही चीज़ के बराबर हो। मुझे उस स्टोर को समझने के लिए एक शानदार तरीका चाहिए जिसे उपयोगकर्ता को निर्देशित किया जाता है। अर्थात। वे किस स्टोर पर अपना पैसा खर्च करते हैं। मान लीजिए कि NSAppStore के लिए उपयोगकर्ता का उपयोग नहीं है? – pms1969

+0

नीचे मतदान किया गया, क्योंकि यह _not_ उपयोगकर्ता के आईट्यून्स स्टोर का लोकेल देता है। –

0

मेरा सुझाव है कि आप आईट्यून्स deep links आज़माएं। उदाहरण के लिए, http://itunes.com/apps/appname उपयोगकर्ता को स्थानीय ऐप स्टोर में ले जाना चाहिए जहां वह पैसे खर्च करती है।

+1

ठीक है, लेकिन मैं कैसे पता लगा सकता हूं कि स्टोर क्या है। तो उदाहरण के लिए मैं "आपका ऐप स्टोर है ..." जैसे कुछ प्रदर्शित कर सकता हूं – pms1969

+0

@ कोस्टिक, आपके उत्तर में पहला लिंक काम नहीं करता है। – kelin

1

मुझे एक ही कार्यक्षमता की आवश्यकता है। फिलहाल मैं NSLocale से डिफ़ॉल्ट रूप से डेटा का उपयोग करके पढ़ने पर विचार कर रहा हूं, लेकिन अगर यह मेल नहीं खाता है तो इसे अनुकूलित करने के लिए सेटिंग्स.एप में सेटिंग जोड़ना।

यह फ़ंक्शन an answer to another question of mine से लिया गया है।

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

सेटिंग की भी सोच। लेकिन मुझे विशेष रूप से यह एक विचार के रूप में पसंद नहीं है, उदाहरण के लिए, आपके पास राज्यों में बहुत से स्वाभाविक रूप से स्पेनिश बोलने वाले लोग हैं, जो लोकेल उनके द्वारा उपयोग किए जाने वाले स्टोर से बिल्कुल अलग हो सकते हैं। मुझे लगता है कि मैं अपने आप के जवाब के करीब हूं, और यदि यह काम करता है तो मैं पोस्ट करूंगा। – pms1969

+1

मैंने सोचा कि मेरे सवालों में से एक का जवाब ब्याज का हो सकता है: http://stackoverflow.com/questions/2639684/itunes-music-store-link-maker-how-to-search-from-within-my-app/2668190 # 2668190 ThierryB की 'getUserCountry' विधि यूएस में उपयोगकर्ताओं के लिए यूएस वापस नहीं लौटाएगी, चाहे उनकी भाषा किस पर सेट की गई हो? – prendio2

+0

धन्यवाद, मैंने जल्दी ही कोशिश की, लेकिन यह जिस तरह से मैंने अपेक्षित तरीके से काम नहीं किया, या गलत परिणाम लौटाया। ऐसा कहकर, मुझे वास्तव में फोन पर ऐसा करने की याद नहीं है (सिम्युलेटर में किया गया था), इसलिए जब मैं अपनी हानिकारक प्रोविजनिंग प्रोफाइल को हल करता हूं और फिर फोन पर डीबग कर सकता हूं तो मेरे पास एक खेल होगा। प्रतीत होता है कि – pms1969

संबंधित मुद्दे