我正试图在WebView中允许在网站上按下按钮时打开一个新窗口。我尝试启用setJavaScriptCanOpenWindowsAutomatically
和 setSupportMultipleWindows
,但是当按下按钮时仍然没有反应。
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);
}
}
我已经阅读并尝试了以下建议的答案:
我认为链接这里中的问题的答案可能不适用于我的情况,因为链接的问题是关于同一窗口内的弹出窗口,但我点击的按钮会完全打开一个新窗口(我无法更改)。
有人知道为什么setJavaScriptCanOpenWindowsAutomatically
和setSupportMultipleWindows
不能解决问题,以及如何设置我的webview以允许单击一个按钮打开一个新窗口吗?
window.open()
,并在 Android 端重写WebChromeClient
中的onCreateWindow
。 - Mohd Qasim