Кнопки "Не разрешать" и "Разрешить" всегда отображаются на экране в браузере WP7 Facebook OAUTH

Я разработал клиент WP7, который использует Facebook С# SDK, используя OAUTH и веб-браузер.

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

Я пробовал использовать все различные режимы отображения (touch, wap, page, popup), а "страница" - единственная, которая показывает кнопки на той же странице, но затем шрифты крошечные. Я также пробовал разные размеры для управления браузером.

Пример в SDK имеет такое же поведение.

Кто-нибудь нашел для этого обход?

2 ответа

Решение, которое я нашел, - это использовать Javascript для изменения свойств CSS для элемента:

private void FacebookLoginBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
 // check for when this approve page has been navigated to
 if (FacebookLoginBrowser.Source.AbsolutePath == "/connect/uiserver.php")
 {
 showBrowser();
 // do the script injection on the LoadCompleted event - doing it here will appear to work when you have a fast connection, but almost certainly fails over 3G because the elements aren't ready in time to be modified
 FacebookLoginBrowser.LoadCompleted += new System.Windows.Navigation.LoadCompletedEventHandler(FacebookLoginBrowser_LoadCompleted);
 }
 // etc ...
}
 void FacebookLoginBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
 FacebookLoginBrowser.LoadCompleted -= FacebookLoginBrowser_LoadCompleted;
 // Facebook will likely change this and break our code soon, so make sure you anticipates this
 try
 {
 FacebookLoginBrowser.InvokeScript("eval", "document.getElementById('platform_dialog_bottom_bar').style.position = 'relative';document.getElementById('platform_dialog_bottom_bar').style.top = '-60px';");
 }
 catch
 {
 // TODO: display instruction to scroll down if we ever end up here
 }
}

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


Я не пробовал это, но мог ли вы использовать метод Масштабирования (SizeF) для WebBrowser для изменения уровня масштабирования страницы?

licensed under cc by-sa 3.0 with attribution.