Google не переадресовывает приложение после входа в систему [duplicate]

Поскольку этот поток немного разветвился в общем обсуждении текущих реализаций с плавающей запятой, я бы добавил, что есть проекты по исправлению их проблем.

Взгляните на https: // posithub.org/, который демонстрирует тип номера, называемый posit (и его предшественник unum), который обещает предложить лучшую точность с меньшим количеством бит. Если мое понимание верное, оно также фиксирует проблемы в вопросе. Весьма интересный проект, человек, стоящий за ним, является математиком Dr. Джон Густафсон . Все это с открытым исходным кодом, с множеством реализаций в C / C ++, Python, Julia и C # ( https://hastlayer.com/arithmetics ).

3
задан iAnurag 4 February 2016 в 13:46
поделиться

4 ответа

В AppDelegate вам нужно добавить реализацию

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool
{
    return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}

Google отправляет обратно информацию по URL-адресу, вышеперечисленный метод отображает эту информацию и отправляет обратно в приложение.

1
ответ дан Ayman Ibrahim 27 August 2018 в 20:14
поделиться

Если вы интегрировали библиотеку CleverTap CleverTap.autoIntegrate() в своем делете, приложение не перенаправляет пользователя обратно в приложение. Добавление событий CleverTap вручную решит эту проблему. Если вы все сделали правильно.

0
ответ дан Ashiq Sulaiman 27 August 2018 в 20:14
поделиться

Я, наконец, исправил это после работы дня. @ayman Ibrahim был в основном, верно, но я думаю, что ответ немного шире. Различные версии Swift / Objective-C и SDK Google вызывают разные версии метода canOpenURL в AppDelegate. Я не на 100% уверен в этом и буду благодарен за подтверждение или исправление. Вот версия того метода, который работал для меня. Я использую SDK Google версии 4.0, нацеленный на iOS 9.1, и используя Swift 3.0:

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
}

Я также использую FBSDK, поэтому игнорируем эту строку.

4
ответ дан dylanthelion 27 August 2018 в 20:14
поделиться

Я нашел для него еще один ответ. В моем случае в AppDelegate я реализовал 2 метода делегирования

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options

и

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

. Первый - это метод делегата и больше не должен реализовываться, он был заменен на второй метод. Но каким-то образом я все еще использую оба и просто добавляю

return [[GIDSignIn sharedInstance] handleURL:url
                                   sourceApplication:sourceApplication
                                          annotation:annotation];

во второй, а затем как-то снова, он просто обращается к первому методу, а затем больше не переходит к моему приложению.

Поэтому я хочу опубликовать свое дело для кого-то, кто может получить эту ошибку, мне потребовалось слишком много времени, чтобы узнать

0
ответ дан Scofield Tran 27 August 2018 в 20:14
поделиться