Facebook Войти + Google Войти + Braintree Paypal Оплата - AppDelegate проблема - PullRequest
0 голосов
/ 28 мая 2018

В моем приложении есть вход в Google, вход в Facebook и интеграция с Braintree.

Я поместил следующий код в appdelegate.swift:

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {

    let checkFB = FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
    let checkGoogle = GIDSignIn.sharedInstance().handle(url as URL!,sourceApplication: sourceApplication,annotation: annotation)
    return checkGoogle || checkFB
}

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
    if url.scheme?.localizedCaseInsensitiveCompare("com.release.braintreepayments") == .orderedSame {
        return BTAppSwitch.handleOpen(url, options: options)
    }
    return false
}

Когда я ставлю func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {}, мой вход перестает работать, и если я закомментирую это, вход работаетхорошо.Можете ли вы сказать мне, как объединить оба?Я уверен, что есть какой-то конфликт в выборе одного из обоих методов, но мне нужны оба.

Я тоже связался со службой поддержки Braintree.

1 Ответ

0 голосов
/ 28 мая 2018

Попробуйте использовать только второй:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
    if url.scheme?.localizedCaseInsensitiveCompare("com.release.braintreepayments") == .orderedSame {
        return BTAppSwitch.handleOpen(url, options: options)
    }

    guard let sourceApplication = options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String else {
            return false
        }
    let annotation =  options[UIApplicationOpenURLOptionsKey.annotation]

    let checkFB = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: sourceApplication, annotation: annotation)
    let checkGoogle = GIDSignIn.sharedInstance().handle(url as URL!,sourceApplication: sourceApplication,annotation: annotation)

    return checkFB || checkGoogle

}
...