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の権限システムにあります。ローカルファイルのスクリプトには、外部リソースへのアクセスに問題があります。解決策は、ローカルコードが外部Webサイトからロードされたと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 に答える