gpt4 book ai didi

机器人 : Open pop-up window in my webview

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:50:21 25 4
gpt4 key购买 nike

我的应用程序中有 webview,我希望它在单击 webview 中的链接时打开弹出窗口。我添加了以下代码,但没有用:-

WebSettings webSettings = webViewPage.getSettings();    
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportMultipleWindows(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);

That's how I want pop up window to appear弹出窗口应如下所示

最佳答案

经过 3 年的漫长岁月,我正在回答我自己的问题:

当点击网页内的链接时,根据网页的实现,有两种可能的情况:1) 链接将在同一窗口中打开。2) 链接将在新窗口打开。

好吧,使用下面的代码很容易处理第一种情况:

    @Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}

在 WebViewClient 实现中覆盖 shouldOverrideUrlLoading 将在同一窗口中打开链接。

现在让我们看一下第二种情况,网页请求在新窗口中打开一个 url。对于这种情况,我们需要告诉我们的 webview 支持多个窗口,如下所示:

webView.getSettings().setSupportMultipleWindows(true);

然后添加一个新的 web chrome 客户端到 webview 以在网页请求新窗口时获取事件

webView.setWebChromeClient(new WebChromeClient() {


@Override
public boolean onCreateWindow(WebView view, boolean isDialog,
boolean isUserGesture, Message resultMsg) {



WebView newWebView = new WebView(WebpageActivity.this);
newWebView.getSettings().setJavaScriptEnabled(true);
newWebView.getSettings().setSupportZoom(true);
newWebView.getSettings().setBuiltInZoomControls(true);
newWebView.getSettings().setPluginState(PluginState.ON);
newWebView.getSettings().setSupportMultipleWindows(true);
view.addView(newWebView);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();

newWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});

return true;
}
}

});

干杯!!!

关于机器人 : Open pop-up window in my webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23308601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com