VKCOM/vk-ios-sdk

При авторизации приложения ничего не происходит

MrWoWander opened this issue · 2 comments

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

func vkSdkAccessAuthorizationFinished(with result: VKAuthorizationResult!) {
        if result.token != nil {
            // дальнейший код
        }
    }

Сейчас данный метод отрабатывает только при нажатии кнопки Done в браузере, что подразумевает ручное закрытие браузера, НО при этом никакие данные не сохраняются, тем самым result.token == nil

Браузер открыт через present() внутри приложения (SFSafariViewController)
Удалось скопировать ссылку (https://oauth.vk.com/auth_redirect?app_id=... - полную ссылку понятное дело не покажу, но там идет информация о пользователе и токен).

В Info.plist все прописано:

<key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>vk{ID моего приложения}</string>
			</array>
		</dict>
	</array>

Кто может помочь с решением проблемы?
(постарался посмотреть предыдущие issues - решения не нашел)

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

P.S. Чтобы запустить авторизацию в режиме WebView нужно передайть в authorize() второй параметр:

VKSdk.authorize(scope, with: VKAuthorizationOptions.init(rawValue: 2))

что бы браузер закрывался автоматически, а не через Done, мне помогло вот это #525 (comment)