0

Safari を使用してユーザーをログインさせる最新バージョンの ParseFacebookUtils を使用しています。プロセスは期待どおりに機能し、Safari で公開プロファイルへの許可を求めてアプリに戻ります。奇妙な動作は、ログイン リクエストがアプリに返されたときに、ブロック内のコードが実行されないことです。

ログインボタンをもう一度押すか、ログイン動作をアプリ内で Web ビューが表示される Web ベースに設定した場合にのみ実行されます。ただし、ユーザーはログインする必要があり、詳細を忘れている可能性があるため、これは最善ではありません。以下は、ユーザーのログインに使用しているコードです。

   PFFacebookUtils.logIn(withPermissions: ["public_profile"]) { user, error in

            if let user = user {
                if user.isNew {
                    print("User signed up and logged in through Facebook!")
                } else {
                    print("User logged in through Facebook!")
                }
            } else {
                print("Uh oh. The user cancelled the Facebook login.")
            }
        }

これは、URL の初期化と処理に使用しているアプリ デリゲートのコードです。

import UIKit
import Parse
import ParseFacebookUtils

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        Parse.initialize(with: ParseConfig.configuration)
        PFFacebookUtils.initializeFacebook()

        // Configure an anon user on startup
        PFUser.enableAutomaticUser()
        PFUser.current()?.saveInBackground()


        return true
    }

    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

        return FBAppCall.handleOpen(url, sourceApplication: UIApplicationOpenURLOptionsKey.sourceApplication.rawValue)
    }
}
4

0 に答える 0