2011-06-07 35 views
3

我开发了一个WP7客户端,它使用Facebook C# SDK,使用OAUTH和Web浏览器控件。WP7 Facebook OAUTH浏览器控件上的“不允许”和“允许”按钮始终不在屏幕上

除了在请求用户接受/拒绝我要求的访问权限的页面上,一切正常,“不允许”和“允许”按钮不在浏览器屏幕的底部,并且用户必须向下滚动以点击它们并不明显。

我试过使用所有不同的display modes(touch,wap,page,popup),“page”是唯一一个在同一页面显示按钮,但字体很小的页面。我也尝试了不同的浏览器控件大小。

SDK中的示例具有相同的行为。

有没有人找到解决这个问题的方法?

回答

1

我已经找到了解决办法是使用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 
    } 
} 

我希望帮助。如果遇到问题,请随时与我联系

+1

顺便说一下,这是目前唯一的解决方案。我为Facebook C#SDK构建了原始的WP7演示。不幸的是,WP7 IE浏览器或Facebook的Html中有些东西是关闭的。我还没有弄清楚应该责怪谁(但我的猜测是Facebook正在做浏览器嗅探和定制渲染)。无论如何,直到Facebook解决问题或芒果出来,这是解决方案.. – DevTheo 2011-06-08 12:46:34

0

我还没有试过这个,但是你可以使用WebBrowser控件的Scale(SizeF)方法来改变页面的缩放级别吗?

+0

WP7中的WebBrowser控件没有Scale属性,并且HTML内容正从Facebook返回,所以我不认为我可以将视口设置插入HTML – Damian 2011-06-07 23:41:46