0

正直なところ、FB には少し頭がおかしくなっていますが、それは余談です...

アプリを離れずに Safari や Facebook アプリを開かずにユーザーを認証する方法を見つけるのをちょっとあきらめました (明らかな理由もなく、ユーザー エクスペリエンス全体を壊すだけです)。

とにかく、彼らが主張するので、私には選択の余地がありません。BUT: FB の例はすべて AppDelegate で FBSession を処理します。私見、それはそれが属する場所ではありません。私のアプリは完全に FB を中心に展開しているわけではなく、ユーザーのタイムラインに何かをアップロードするための一部にすぎません (彼女が本当にそれを望んでいる場合)。そのため、FB アップロードを処理する viewController で FBSession 全体を処理したいと考えています。

しかし、ユーザーが認証されると、FB は AppDelegate に以下を実装するように求めています。

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    // attempt to extract a token from the url
    return [FBAppCall handleOpenURL:url
                  sourceApplication:sourceApplication
                        withSession:self.session];
}

self.sessionしかし、この段階では、AppDelegateにはありません。これをViewControllerに渡すにはどうすればよいですか? どこかに保管できますか?シングルトンを作成するクラス ( http://barrycenter.com/BAM!coding/2011/07/simplifying-facebook-ios-sdk/ ) を見つけました。しかし、これは古いバージョンの SDK 用であり、新しい SDK で動作するように変更する方法がわかりません。シングルトンを作成することは私にとって良い考えのように思えます.最新のSDK(3.8)でこれを行う方法を誰かが正しい方向に向けることができますか?

4

0 に答える 0