2010-12-21 13 views
12

आईफोन फेसबुक कनेक्ट उदाहरण सफारी का उपयोग नहीं करना चाहता हूं। मैं सफारी का उपयोग नहीं करना चाहता। इस समस्या से कैसे निपटा जाए।आईफोन फेसबुक कनेक्ट उदाहरण सफारी कहते हैं। मैं सफारी

+13

तो क्या आप उपयोग करना, फायरफॉक्स चाहते हैं? – BoltClock

+1

यह अच्छा मजाक इस प्रश्न के लिए बहुत बहुत धन्यवाद – Voloda2

+1

है ... मैं सप्ताह के लिए मेरे सिर पीटने किया गया है, मैं भी अपने ही UIWebView कि 100 बार फेसबुक के –

उत्तर

14

मुझे यकीन नहीं है कि यह कोशेर है, लेकिन मैंने Facebook.m में 131-145 लाइनों को सफारी में लॉगिन स्क्रीन खोलने के बजाय UIWebView खोलने के लिए टिप्पणी की। मेरे लिए ठीक काम करने लगता है ...

+2

नए संस्करण के साथ उन लोगों के लिए की तुलना में भद्दा लग रहा है लागू किया, कोड को खोजने के लिए @donkim BOOL के लिए खोज का जिक्र कर रहा है ओपन ओथरएप = नहीं; उपयोगी हिस्सा निम्नलिखित 'if' ब्लॉक है। – Agos

+1

शायद मुझे कुछ याद आ रहा है, लेकिन फेसबुक.एम कहां है? अगर मैं अपने प्रोजेक्ट में 'फेसबुकएसडीके.फ्रेमवर्क' में शामिल हूं, तो मुझे 'एफबी' से पहले कई हेडर फाइलें दिखाई देती हैं लेकिन कोई फेसबुक.एम नहीं है। किसी भी जानकारी की सराहना की है! – sixstatesaway

+0

@ sixstatesaway, मैं भी है.पर लगता है मैं इसे now.Open गया अपने 'FacebookSDK के तहत फेसबुक-ios-sdk.xcodeproj'.There, आप' मिलेगा असमर्थ था Legacy'.Under 'Legacy', फेसबुक है मीटर –

2

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

तो मेरा सुझाव है कि आप इसे इस तरह रखें!

मैं मानता हूं कि पूरी प्रक्रिया में थोड़ा सुधार होना चाहिए और कम से कम कनेक्ट होने पर हर बार एक नया सफारी टैब नहीं खोलना चाहिए! धैर्य ...

2

यदि उपयोगकर्ता के पास आईफोन के लिए फेसबुक एप्लीकेशन है, तो यह सफारी नहीं खुल जाएगा। यह सीधे फेसबुक ऐप

+0

हाँ नहीं बल्कि ios9 – panchicore

6

ऊपर डोनकिम का सुझाव SDK की 1/31/2011 प्रतिबद्धता का उपयोग करके मेरे लिए अच्छा काम करेगा। एक और विकल्प यह है कि प्रत्येक कॉल को "AuthorizeWithFBAppAuth: safariAuth:" में फेसबुक.एम में देखें। आप लाइन 221, 267, और 274 पर YES से NO तक दूसरे तर्क को बदल सकते हैं।

+4

परिवर्तन आसान बनाने के लिए में, मैं सिर्फ trySafariAuth नहीं करने के लिए authorizeWithFBAppAuth में मजबूर: safariAuth। एक आकर्षण की तरह काम करता है और उपयोगकर्ताओं को ऐप में रखता है। –

1

इन सभी समाधानों के साथ समस्या यह है कि आप एक निरंतर auth_token खो देते हैं। इसलिए यदि आपको URL में auth_token पास करके मैन्युअल रूप से मैन्युअल ग्राफ अनुरोध करने की आवश्यकता है, तो आप बस नहीं कर सकते हैं।

1

सफारी सेट करें: नहीं [स्वयं प्राधिकृत WithFBAppAuth: हाँ सुरक्षितारीथ: नहीं]; (facebook.एम: 221)

0

किसी भी नए फेसबुक आईओएस एसडीके का उपयोग करने के लिए (सुनिश्चित नहीं है कि कौन सा संस्करण इसे जोड़ा गया है), आप dialog:@"oauth" ... विधि (doc) का उपयोग कर सकते हैं। जैसा कि अन्य ने कहा है, आप एसएसओ छोड़ देते हैं, लेकिन मेरे जैसे मामलों (एक ओपनजीएल गेम) के लिए, मुझे ओवरले को एक अलग ऐप पर स्विच करने के लिए बेहतर लगता है।

0

फ़ाइल: Facebook.m | यहां शुरू होता है: लाइन # 220 authorizeWithFBAppAuth:safariAuth: | बूलियन trySafariAuth = NO; लाइन जोड़ें # 223

/** 
    * A private function for opening the authorization dialog. 
    */  
    - (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth 
         safariAuth:(BOOL)trySafariAuth { 

     trySafariAuth = NO; 
     // more code allow blow this, but im too lazy to show it 
     // so please just change the boolean... 
    } 
0
Change following method as follows in facebook.m 

- (void)authorize:(NSArray *)permissions 
      delegate:(id<FBSessionDelegate>)delegate { 

     [_permissions release]; 
     _permissions = [permissions retain]; 

     _sessionDelegate = delegate; 

     [self authorizeWithFBAppAuth:NO safariAuth:NO]; 
     // [self authorizeWithFBAppAuth:NO safariAuth:YES]; 
    }