Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не удается получить токен. #33

Open
1mavic opened this issue Nov 17, 2022 · 6 comments
Open

Не удается получить токен. #33

1mavic opened this issue Nov 17, 2022 · 6 comments

Comments

@1mavic
Copy link

1mavic commented Nov 17, 2022

Не удается получить токен.

  1. вызываем метод vk.logIn(scope: [VKScope.email])
  2. открывается приложение vk. Нажимаем там разрешить.
  3. возвращаемся в приложение.
  4. сразу открывается сафари на странице логина VK.
  5. разрешаем там. Страница обновляется. Белый экран.
  6. нажимаем готово. Возвращаемся в приложение. Метод логина возвращает null.

Iphone 11. IOs 15.7. Flutter version 3.0.1. flutter_login_vk 2.2.1+1.

@darkstarx
Copy link

Right, the same behavior, here is my case #36
It appears on the real device and looks like a bug, I just can't sign in.

@greymag
Copy link
Contributor

greymag commented Nov 28, 2022

Добрый день. Извиняюсь за поздний ответ.

Похоже на проблему конфигурации, пожалуйста, сделайте следующее:

  1. Проверьте, что приложение настроено как описано в README. Обратите внимание на параметр CFBundleURLTypes.
  2. Если с конфигурацией все в порядке, то проверьте делегат ios/Runner/AppDelegate.swift. Убедитесь, что никто не перехватывает обработку открытия в методе application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool. Вы можете прислать содержимое файла и я посмотрю все ли там в порядке.
  3. Также проверьте любые другие плагины, которые могут перехватывать обработку открытия.

@1mavic
Copy link
Author

1mavic commented Nov 29, 2022

2. application

спасибо за ответ!

проверил свой AppDelegate.swift
в приложении еще подключен плагин Юкассы:

func application(
    _ application: UIApplication,
    open url: URL,
    sourceApplication: String?, 
    annotation: Any
) -> Bool {
    return YKSdk.shared.handleOpen(
        url: url,
        sourceApplication: sourceApplication
    )
}

Проблема может быть из-за него?

@greymag
Copy link
Contributor

greymag commented Nov 29, 2022

Да, именно из-за него =)

Поменяйте на

return YKSdk.shared.handleOpen(
        url: url,
        sourceApplication: sourceApplication
    ) || super.application(app, open: url, sourceApplication: sourceApplication, annotation: annotation)

и аналогично для метода

application(
    _ app: UIApplication,
    open url: URL,
    options: [UIApplication.OpenURLOptionsKey: Any] = [:]
)

если он у вас объявлен

@1mavic
Copy link
Author

1mavic commented Nov 29, 2022

Да, именно из-за него =)

Поменяйте на

return YKSdk.shared.handleOpen(
        url: url,
        sourceApplication: sourceApplication
    ) || super.application(app, open: url, sourceApplication: sourceApplication, annotation: annotation)

и аналогично для метода

application(
    _ app: UIApplication,
    open url: URL,
    options: [UIApplication.OpenURLOptionsKey: Any] = [:]
)

если он у вас объявлен

понял, что мне и не нужна функция для Юкассы, убрал - все заработало. Но хорошо бы было решить проблему все-равно.)
В swift совсем не понимаю пока.
Так разве валидно?

return YKSdk.shared.handleOpen(
        url: url,
        sourceApplication: sourceApplication
    ) || super.application(app, open: url, sourceApplication: sourceApplication, annotation: annotation)

т.е. получаю так:


@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GeneratedPluginRegistrant.register(with: self)
    FlutterDownloaderPlugin.setPluginRegistrantCallback(registerPlugins)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
  override func application(
        _ application: UIApplication,
        open url: URL,
        sourceApplication: String?,
        annotation: Any
    ) -> Bool {
        return YKSdk.shared.handleOpen(
        url: url,
        sourceApplication: sourceApplication
    ) || super.application(app, open: url, sourceApplication: sourceApplication, annotation: annotation)
    }
    
    @available(iOS 9.0, *)
    override func application(
        _ app: UIApplication,
        open url: URL,
        options: [UIApplication.OpenURLOptionsKey: Any] = [:]
    ) -> Bool {
        return YKSdk.shared.handleOpen(
            url: url,
            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String
        )
    }
}

@greymag
Copy link
Contributor

greymag commented Nov 29, 2022

Да, но во второй функции тоже нужно добавить вызов super, аналогично.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants