Ich arbeite über die Facebook API für meine iPhone App und habe zwei Fragen:
Alle Dokumentationen / Beispiele scheinen alles in die appDelegate zu bringen: das Facebook-Objekt instanziieren und in appDidFinishLaunch autorisieren und die Anwendung überschreiben: handleOpenURL-Methode.
In meiner App möchte ich nicht, dass ein Benutzer zu einer bestimmten Ansicht navigiert und eine Schaltfläche drückt. Ich verstehe, dass ich in dieser Ansicht das Facebook-Objekt instanziieren und die Autorisierung in der Button-Handler-Methode starten werde, aber was ist mit dem Umgang mit dem Override der Anwendung: handleOpenURL? Ich müsste ein anderes FB-Objekt verwenden (in meinem App-Delegierten instanziiert) als das, das in meinem bestimmten View-Controller verwendet wird.
Setzt diese Situation ein Singleton voraus? Oder ist es eine gute Design-Lösung, um mein AppDelegate das FB-Objekt instanziieren zu lassen und dort auf es zuzugreifen, wo immer ich es in meinem Programm brauche?
In den FB-Dokumenten sagen sie Ihnen, die Anwendung zu überschreiben: handleOpenURL-Methode:
Danke!
1) Beide Lösungen sind Ok. Aber es ist natürlich sauberer, ein Singleton zu verwenden, besonders wenn Sie beabsichtigen, es in Ihrer Anwendung wieder zu verwenden.
2) application:handleOpenURL method:
ist die Methode, um eine Anwendung extern aufzurufen
FB SDK ermöglicht Authentifizierung von Facebook App, wenn installiert oder Safari. Nach der Authentifizierung wird Ihre App mit diesem Handler zurückgerufen.
So funktioniert nur mit Geräten, die Multitasking unterstützen
Dies ist der bevorzugte Weg, um die Anmeldung zu erleichtern und die Sitzung zu teilen. Aber es ist nicht obligatorisch ...
Eine App kann mehrere URL-Schemas unterstützen, die in einer Anwendung deklariert sind, die Sie überprüfen können (nicht getestet, sollte aber in etwa so aussehen):
Tags und Links ios facebook facebook-graph-api facebook-ios-sdk