2011-10-18 31 views
2

我已經嘗試在WebView中使用它們描述的方法放置Google的+1按鈕。WebView中的Android +1按鈕

final WebView web = (WebView)findViewById(R.id.webView); 
web.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
web.getSettings().setJavaScriptEnabled(true); 
web.getSettings().setSavePassword(false); 
web.getSettings().setBuiltInZoomControls(false); 
web.getSettings().setUseWideViewPort(true); 
web.getSettings().setLoadWithOverviewMode(true); 
web.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
web.setHorizontalScrollBarEnabled(false); 
web.setBackgroundColor(0xff2e2e2e); 
web.loadDataWithBaseURL(null, htmlCodeGoesHere, "text/html", "utf-8", null); 

和HTML代碼:

<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> 
<g:plusone href="http://stackoverflow.com"></g:plusone> 

問題是...按鈕不會顯示在所有我如下初始化的WebView。

我該如何解決?順便說一句 - 我也希望按鈕啓動一個新的窗口,而不是使用WebView。有一個簡單的解決方案嗎?

感謝

回答

3

問題在於WebView中的權限系統。本地文件中的腳本在訪問外部資源時遇到問題。解決方案是讓WebView認爲本地代碼是從外部網站加載的。

web.loadDataWithBaseURL("http://fake.com", htmlCodeGoesHere, "text/html", "utf-8", null); 

按鈕會出現,但unfortunetely它不能在WebView中很好地工作。

0

我不是太有經驗豐富的web視圖,但按鈕不會顯示在所有的事實,聽起來像它可以在您的佈局/ main.xml中的文件的問題。你有沒有看過這個呢?

另外,對於啓動一個新窗口的按鈕,我認爲可以附加一個setOnClickListener,一旦完成,就把它當作一個按鈕,然後打開一個新窗口。我希望這是可能的。

+0

你的回答根本沒有幫助。佈局沒有問題,而且很容易檢查。 WebView用於使用webkit呈現HTML網站,因此很容易檢查它是否顯示。至於按鈕,它是WebView中的一個按鈕。沒有辦法將任何聽衆附加到它上面。 –