2

我尝试使用他们描述的方法将 Google 的 +1 按钮放在 WebView 中。我已按如下方式初始化 WebView:

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。有简单的解决方案吗?

谢谢

4

2 回答 2

3

问题在于 WebView 中的权限系统。本地文件中的脚本在访问外部资源时遇到问题。解决方案是让 WebView 认为本地代码是从外部网站加载的。

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

该按钮将出现,但不幸的是它在 WebView 中无法正常工作。

于 2011-10-29T14:53:21.653 回答
0

我对 WebView 不太熟悉,但按钮根本没有显示,听起来这可能是您的 layout/main.xml 文件中的问题。你看过这个了吗?

此外,对于启动新窗口的按钮,我认为可以附加一个 setOnClickListener,一旦完成,只需将其视为一个按钮,然后打开一个新窗口。我希望这是可能的。

于 2011-10-18T20:57:58.437 回答