2011-06-07 38 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