Closed agitka closed 10 years ago
@agitka имеешь ввиду, что, если программист указал UIWebView и его свойство hidden == YES, то логика работы нарушается?
@AndrewShmig Попробуй два раза запустить приложение, подчистив в начале кэши. Первый норм, второй раз у тебе вебвью остается на экране. Попробуй.
@agitka мда уж, судя по логам при первом запуске даже не вызывается метод делегата willShow / willHide
2013-11-12 19:04:39.580 Project[75765:80b] +[VKConnector sharedInstance]
2013-11-12 19:04:39.582 Project[75765:80b] -[VKConnector startWithAppID:permissons:webView:delegate:]
2013-11-12 19:04:39.781 Project[75765:80b] -[VKConnector webView:shouldStartLoadWithRequest:navigationType:]
2013-11-12 19:04:39.782 Project[75765:80b] -[VKConnector webViewDidStartLoad:]
2013-11-12 19:04:41.395 Project[75765:80b] -[VKConnector webViewDidFinishLoad:]
2013-11-12 19:04:41.396 Project[75765:80b] -[VKConnector showVKModalViewForWebView:]
2013-11-12 19:04:41.396 Project[75765:80b] -[ASAAppDelegate VKConnector:willShowWebView:]
2013-11-12 19:04:41.398 Project[75765:80b] -[VKConnector webView:shouldStartLoadWithRequest:navigationType:]
2013-11-12 19:04:41.399 Project[75765:80b] -[VKConnector webViewDidStartLoad:]
2013-11-12 19:04:44.574 Project[75765:80b] -[VKConnector webViewDidFinishLoad:]
2013-11-12 19:04:44.574 Project[75765:80b] -[VKConnector showVKModalViewForWebView:]
Надо поковырять сейчас, в чем может быть проблема и как исправить.
@AndrewShmig Я описал ее наверху, _webViewIsShown лишняя сущность. Да и логика с удаленным приложением грязная, зачем это обрабатывать, если приложение удалили это трындец, зачем сдк это обрабатывать я не понимаю.
@AndrewShmig почему в первом норм ASAAppDelegate VKConnector:willShowWebView:
@agitka насчет удаления приложения с тобой соглашусь, но убрать проще, чем написать, пусть пока будет. Линк на просьбу и обсуждение: https://github.com/AndrewShmig/Vkontakte-iOS-SDK-LV/issues/50
@agitka у меня даже в первом не вызывается, если судить по логам.
@AndrewShmig У меня при регистрации нормально, второй запуск окно
Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Таким образом Вы можете потерять доступ к Вашему аккаунту.
остается.
@AndrewShmig ну ветвление скажем у тебя "хитроватое", немного пахнет, как говорят.
@agitka вру, всё нормально. но я не понял в чем проблема в том, что ты выше сообщил. Если вебвьюха УЖЕ показана, то нет смысл вызывать метод делегата willShow, а значит будет только вызван willHide. Или я не догоняю?
Исправил правда всего одну строку: _webViewIsShown = webView.hidden; // should default to NO
@agitka так стоп, окно остается потому, что ты должен сам обработать процесс спрятывания окна (вебвьюхи) в методе делегата.
@agitka насчет "пахнет", ну в комментарии там в коде четко написано, что это грязный хак.
@AndrewShmig там написанно скрывать, но блок
- (void)VKConnector:(VKConnector *)connector
willHideWebView:(UIWebView *)webView
{
NSLog(@"%s", __FUNCTION__);
self.webView.hidden = YES;
}
не вызовится второй раз когда токен уже есть, где надо спрятать вью во второй запуск?
А фикс текущий не исправил косяк? Никак не могу автологина добиться, каждый раз приходится вводить пароль в ВК.
@agitka да, воспроизвел косяк.
@AndrewShmig :sweat_smile:
@agitka проверь пожалуйста. Теперь должно всё нормально прятаться.
@AndrewShmig Сейчас прячется.
@agitka отлично! значит closed #66
@AndrewShmig Посмотри остальные методы, где заменил переменную. Например
- (void) webView:(UIWebView *)webView
didFailLoadWithError:(NSError *)error
{
LOG();
if ([self.delegate respondsToSelector:@selector(VKConnector:connectionErrorOccured:)]) {
if (webView.hidden) {
[self.delegate VKConnector:self
willHideWebView:webView];
}
[self.delegate VKConnector:self
connectionErrorOccured:error];
}
}
странно звучит.
@agitka что именно странно звучит?
@AndrewShmig
if (webView.hidden) {
[self.delegate VKConnector:self
willHideWebView:webView];
}
@AndrewShmig Don't forget cocoa pod with error. Feel the lack of unit tests with the issue.
@agitka updated cocoa pods. yep, unit tests are needed here... soon they will be added.
If we already have access token, below block is not called.
and that's not called
And we can't do anything in delegate's implementation. So the webview wouldn't hide. Because _webViewIsShown's not synced with webView.hidden property.