gpt4 book ai didi

javascript - setSupportMultipleWindows 和 setJavaScriptCanOpenWindowsAutomatically 不允许弹出 webView

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:24 24 4
gpt4 key购买 nike

我试图在按下网站上的按钮时允许在 WebView 中打开一个新窗口。我已尝试同时启用 setJavaScriptCanOpenWindowsAutomaticallysetSupportMultipleWindows,但按下按钮时仍然没有任何反应。

public class WebView extends AppCompatActivity {

android.webkit.WebView myWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);

myWebView = (android.webkit.WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
webSettings.setAllowFileAccess(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setSupportMultipleWindows(true);
myWebView.loadUrl("https://somewebsite.com/");
}

@Override
protected void onSaveInstanceState(Bundle outState ) {
super.onSaveInstanceState(outState);
myWebView.saveState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
myWebView.restoreState(savedInstanceState);
}

}

我已阅读并尝试了以下建议的答案:

认为问题答案链接的原因 here可能不适用于我的情况,因为链接的问题是在同一窗口中谈论弹出窗口,但我单击的按钮会完全打开一个新窗口(我无法更改)。

有谁知道为什么 setJavaScriptCanOpenWindowsAutomaticallysetSupportMultipleWindows 没有解决这个问题,以及我如何设置我的 webview 以便它允许单击一个按钮打开一个新窗口?

最佳答案

你在右边path ,我们有同样的问题。setJavaScriptCanOpenWindowsAutomaticallysetSupportMultipleWindows 必须在 Chrome 浏览器上设置。您的代码使用的是默认 WebView :

myWebView = (android.webkit.WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();

必须扩展 webview 才能使用 chrome setWebChromeClient:

myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onCreateWindow(WebView view, boolean isDialog,
boolean isUserGesture, Message resultMsg) {

// Add your settings to the chrome browser:
WebView newWebView = new WebView(WebpageActivity.this);
newWebView.getSettings().setJavaScriptEnabled(true);
newWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
newWebView.getSettings().setSupportMultipleWindows(true);
}
});

关于javascript - setSupportMultipleWindows 和 setJavaScriptCanOpenWindowsAutomatically 不允许弹出 webView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48040319/

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