【发布时间】:2012-03-01 06:55:53
【问题描述】:
我正在 webview 服务上构建我的应用程序并尝试在另一个窗口中打开新的 url(既不是在默认系统浏览器中,也不是在同一个 webview 中)。我设置了自己的 WebViewClient 和 WebChromeClient 如下所示,
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading (WebView view, String url) {
view.loadUrl(url);
return true;
}
}
public class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onCreateWindow (WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
WebView childView = new WebView(view.getContext());
final WebSettings settings = childView.getSettings();
settings.setJavaScriptEnabled(true);
childView.setWebChromeClient(this);
childView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(childView);
resultMsg.sendToTarget();
Log.d(LOG_TAG, "onCreateWindow"); // never log
return true;
}
}
我也确实将我的 webview setSupportMultipleWindows 设置为 true。
但是,onCreateWindow 从未被调用过。有什么我错过的吗?
提前致谢。
【问题讨论】:
-
你的 onCreate() 方法是什么样的?
-
我只想在另一个网页视图中加载新的网址。老实说,我在某个地方复制了它
-
嗨@fifth 你找到解决方案了吗?
-
逐字尝试此答案中的代码:stackoverflow.com/a/8022295/671393
-
childView不添加到 webview 甚至对话框。你怎么能期望看到窗口。尝试添加webView.addView(childView);