我已经对此进行了很多谷歌搜索,但没有找到答案。我有一个 webview 作为与其他控件的整体布局的一部分。我使用 webview 来显示格式化文本(带有粗体和斜体字体的食谱描述)和 URL。URL 指向 Youtube 并且是完全限定的(即http://www.youtube.com/watch?v=fyzyhuVgzRE)。当我单击 Web 视图中的链接时,Web 视图控件本身会从布局中消失(保留页面上的其余控件不变)并且默认 Web 浏览器不会启动。
它的行为就像我已将 Web 视图的可见性设置为 GONE,但我不操纵布局上任何控件的可见性。
LogCat 输出中的一个有趣线索是来自操作系统的 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从未被调用过。