私はこれについて多くのグーグルを行ってきましたが、答えは見つかりませんでした。他のコントロールを含む全体的なレイアウトの一部として Web ビューがあります。Web ビューを使用して、書式設定されたテキスト (太字とイタリック体のレシピの説明) と URL を表示します。URL は Youtube を指し、完全修飾されています (例: http://www.youtube.com/watch?v=fyzyhuVgzRE )。Web ビューでリンクをクリックすると、Web ビュー コントロール自体がレイアウトから消え (ページ上の残りのコントロールはそのまま残ります)、既定の Web ブラウザーが起動しません。
Web ビューの可視性を GONE に設定したかのように動作しますが、レイアウト上のコントロールの可視性は操作しません。
LogCat 出力の 1 つの興味深い手がかりは、OS からの INFO レベル メッセージです。
MotionRecognitionManager .unregisterListener : / listener count = 0->0,
listener=android.webkit.ZoomManager$1@41ac2fc0
この動作の原因は何ですか?
編集
アクティビティの onCreate() メソッドで webview をセットアップする方法は次のとおりです。
webView1 = (WebView)findViewById(R.id.webView1);
webView1.getSettings().setJavaScriptEnabled(true);
webView1.getSettings().setAllowFileAccess(true);
webView1.setWebViewClient(new MyWebViewClient());
そして MyWebViewClient クラス:
private class MyWebViewClient extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null && url.startsWith("http://")) {
view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
} else {
return false;
}
}
}
奇妙なことに、shouldOverrideUrlLoadingが呼び出されることはありません。