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 ...
|
Registreer | FAQ | Ledenlijst | Kalender | Berichten van vandaag | Zoeken |
#1
|
|||
|
|||
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 |
|
|
Gesponsorde links (verdwijnt na registratie)
|
#2
|
|||
|
|||
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
|
|||
|
|||
Die had ik er ook ingezet, maar dat werkte helaas niet.
|
#4
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
@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
|
|||
|
|||
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. |
Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten) |
|
Soortgelijke discussies |
||||
Discussie | Auteur | Forum | Reacties | Laatste bericht |
iOS SDK install error/probleem | Bengtiphone | Ontwikkelen voor iOS | 0 | 18-09-10 18:33 |
|
|