//

iOS Facebook SDK

iOS Facebook SDK discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Hee, Ik wil graag Facebook aan mijn app toevoegen. Ik ben dus naar developers pagina op de Facebook site gegaan en heb alle stappen gevolgd ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen
  #1  
Oud 21-06-11, 16:09
Jeroen0704 Jeroen0704 is offline
• iOS 5.0.1
• 5.0.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2009
Berichten: 137
Standaard iOS Facebook SDK

Hee,

Ik wil graag Facebook aan mijn app toevoegen. Ik ben dus naar developers pagina op de Facebook site gegaan en heb alle stappen gevolgd op deze pagina.

Dit is gelukt en je kunt nu inloggen. Alleen nu staat de code in de AppDelegate en moet je dus meteen inloggen als de App opstart. Dit is niet de bedoeling omdat Facebook natuurlijk niet verplicht is, maar gewoon een optie. Als ik de code in een viewController zet, dan kun je wel inloggen maar wordt de fbDidLogin functie niet aangeroepen en worden je gegevens dus niet opgeslagen als je ingelogd bent. Als je da app dan opnieuw opstart moet je dus weer inloggen. Dit is niet erg gebruiksvriendelijk en ik vind het ook niet handig werken.

Weet iemand een oplossing voor mijn probleem?

Groeten Jeroen
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 23-06-11, 14:04
JornZ JornZ is offline
• iOS 6.1.3
• 6.1.2
• Besturingssysteem: Windows
 
Geregistreerd: Sep 2010
Berichten: 364
Standaard

Ik vermoed dat de viewcontroller waar je de code nu in hebt gezet geen FBSessionDelegate is, dus wordt ook de callback niet afgehandeld door deze viewcontroller.

Dus je moet mijn inziens iets veranderen in de h. file van je viewcontroller in de trant van:
@interface MyUIViewController: UIViewController <FBSessionDelegate> {
...
  #3  
Oud 23-06-11, 20:58
Jeroen0704 Jeroen0704 is offline
• iOS 5.0.1
• 5.0.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2009
Berichten: 137
Standaard

Die had ik er ook ingezet, maar dat werkte helaas niet.
  #4  
Oud 24-06-11, 17:24
Jeroen0704 Jeroen0704 is offline
• iOS 5.0.1
• 5.0.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2009
Berichten: 137
Standaard

Het is gelukt!

Ik moest de volgende method in de AppDelegate zetten en ik had hem ook in de viewController staan.
Code:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{
    return [[self.viewController facebook] handleOpenURL:url]; 
}
  #5  
Oud 24-06-11, 17:47
Whacko Whacko is offline
• iOS 7.1.2
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jan 2009
Berichten: 484
Standaard

Ah... dan snap ik al wat er mis is.
Je hebt je AppDelegate als delegate opgegeven van de Facebook SDK. Als je je viewcontroller meegeeft, dan hoef je niet vanuit je AppDelegate de method op de viewController aan te roepen.
__________________
Software Engineer
iPhone Developer
  #6  
Oud 24-06-11, 17:49
Jeroen0704 Jeroen0704 is offline
• iOS 5.0.1
• 5.0.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 2009
Berichten: 137
Standaard

@Whacko

Ik begrijp niet helemaal wat je bedoelt, maar eerst had ik de volgende methode in mijn viewController staan:

Code:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{
    return [facebook handleOpenURL:url]; 
}
  #7  
Oud 27-06-11, 17:18
JornZ JornZ is offline
• iOS 6.1.3
• 6.1.2
• Besturingssysteem: Windows
 
Geregistreerd: Sep 2010
Berichten: 364
Standaard

De beschrijving over de facebook SDK vraagt dat je de application:handleOpenUrl: method implementeert, dit is een onderdeel van het UIApplicationDelegate protocol. Overigens is deze "deprecated" (zie Loading…) en vraagt Apple om in plaats daarvan applicationpenURL:sourceApplication:annotation: te implementeren. Deze code wordt dus niet uitgevoerd als dit niet in een object staat wat zich conformeert aan het UIApplicationDelegate protocol, vandaar dat het alleen werkt in je AppDelegate.

In het voorbeeld op de facebook website gaan ze er vanuit dat je het Facebook object als instance variable in de AppDelegate aanmaakt en dan klopt het dus dat je dan [facebook handleOpenUrl:url] kan aanroepen (schijnbaar heeft het Facebook object een methode die handleOpenUrl heet). Als jij het facebook object als instance variable in een viewcontroller zet (die jij viewController hebt genoemd) dan is het logisch dat e.e.a. nu werkt na jouw aanpassing. Dit lijkt me ook de meest geschikte manier. Wel zou volgens mij nog steeds die viewController de FBSessionDelegate moeten zijn.
Reageren



Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
iOS SDK install error/probleem Bengtiphone Ontwikkelen voor iOS 0 18-09-10 18:33

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 17:20.