2012-02-08 17 views
13

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

धन्यवाद

+0

क्या आप "अनन्य पहचान" द्वारा अपना मतलब समझ सकते हैं - क्या आपका मतलब यह है कि आप यह बताने में सक्षम होना चाहते हैं कि एक ही फोन ऐप के माध्यम से या मोबाइल सफारी के माध्यम से आपकी वेबसाइट पर कब जाता है? –

+0

yup मैं यह बताना चाहता हूं कि फ़ोन कब ऐप में या मोबाइल ब्राउज़र में हमारी साइट पर जाता है –

उत्तर

10

यह वास्तव में बहुत कठिन है।

आप ऐप प्रोग्राम कर सकते हैं ताकि जब यह पहली बार खुलता है और एक कुकी सेट करता है तो मोबाइल सफारी लॉन्च करता है, फिर कस्टम यूआरएल योजना का उपयोग करके ऐप पर रीडायरेक्ट करता है।

यह अजीब लग सकता है लेकिन वास्तव में यह है कि फेसबुक की साझा लॉगिन प्रणाली कैसे काम करती है और यह ऐप और ब्राउज़र दोनों को अपने सैंडबॉक्स के "ब्रेक आउट" करने और समान अद्वितीय कुकी आईडी साझा करने की अनुमति देती है।

बेशक आप यह नहीं जान पाएंगे कि उपयोगकर्ता ने कुकी को तब तक हटा दिया था जब तक आप ऐप लॉन्च करते समय रीडायरेक्ट नहीं करते हैं, जो परेशान हो सकता है।

अद्यतन:

आईओएस 9 के रूप में, आप अब बजाय सफारी एप्लिकेशन के लिए पुनः निर्देशित के अपने एप्लिकेशन के SFSafariViewController का उपयोग कर पृष्ठ खोल सकते हैं। यह अभी भी थोड़ा उलझन में है, लेकिन एक डबल ऐप स्विच के लिए बेहतर हो सकता है।

+0

ग्रेट विचार, लेकिन http://stackoverflow.com/questions/8636202/generating-a-non-udid-identifier-in- जावास्क्रिप्ट-टू-पहचान-आईओएस-डिवाइस-अनिकेल कुकीज़ को मोबाइल सफारी में डिफॉल्ट रूप से अक्षम कर दिया जाता है।क्या मुझे कुछ भी गलत हो रहा है (कृपया मुझे नौसिखिया प्रश्न के लिए क्षमा करें, मैं आईओएस विकास के लिए असली नौसिखिया हूं)? –

+0

तृतीय पक्ष कुकीज़ अक्षम हैं, लेकिन पहली पार्टी (उसी पृष्ठ से जो आप जिस पृष्ठ पर हैं) डिफ़ॉल्ट रूप से सक्षम हैं। –

12

यह सीधे संभव नहीं है, लेकिन वेब साइट के सहयोग से यह के रूप में निक लॉकवुड ने कहा है संभव है, और यहां विधि का वर्णन करता है वह की एक व्यापक विस्तार हुआ संस्करण है:

आपके ऐप ने इस करना चाहिए:

  1. लॉन्च मोबाइल सफारी, [[UIApplication sharedApplication] openURL:url];
  2. यूआरएल का उपयोग कर एक विशेष एक है, जैसे होना चाहिए। http://yourwebsite.com/give-ios-app-the-cookie
  3. अपनी वेबसाइट है, जब कि यूआरएल शुरू की है पर, your-app-url-scheme:cookievalue=<somevalue> को एक रीडायरेक्ट जारी (जैसे। angrybirds:cookievalue=hh4523523sapdfa)
  4. अपने ऐप के प्रतिनिधि - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation प्रक्रिया यूआरएल कुकी मूल्य प्राप्त करने के

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

उपयोगकर्ता के जवाब में ध्यान देना बेहतर होगा, उपयोगकर्ता अनुभव पर ध्यान देना - उदाहरण के लिए। उपयोगकर्ता को "लॉगिन" बटन हिट करने का इंतजार करें, फिर इसे करें, और यदि उपयोगकर्ता आपकी वेबसाइट में लॉग इन नहीं है, तो http://yourwebsite.com/give-ios-app-the-cookie उपयोगकर्ता को सफारी के भीतर लॉगिन स्क्रीन दिखाना चाहिए। यदि उपयोगकर्ता लॉग इन है तो उपयोगकर्ता को रीडायरेक्ट करने से पहले सफारी में दूसरे या दो के लिए आपको "स्वचालित रूप से लॉग इन कर रहा है ..." स्क्रीन दिखा सकता है।

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