我使 Android 多 webview 可用,然后在 window.open() 处打开一个新窗口。我将 javascript 代码放在新窗口中并试图获得回报,但代码被放在现有窗口而不是新窗口中。有什么解决办法吗?帮我
#javascript推送方法
public void webViewEvent(WebView view, String script, int delay, String service) {
TextView footerBottomText = findViewById(R.id.footerBottomText);
handler.postDelayed(new Runnable() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void run() {
view.evaluateJavascript(script, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
scriptCallback(service, s);
}
});
}
}, delay);
}
#onCreateWindow
@Override
public boolean onCreateWindow(final WebView view, boolean dialog,
boolean userGesture, Message resultMsg) {
newWebView = new WebView(MainActivity.this);
WebSettings webSettings = newWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportMultipleWindows(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setDomStorageEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setUserAgentString(dbHelper.getUserConfig().get("userAgent"));
newWebView.setFocusable(true);
newWebView.setFocusableInTouchMode(true);
newWebView.setWebViewClient(new WebViewClient());
newWebView.setWebChromeClient(new WebChromeClient(){
@Override
public void onCloseWindow(WebView window) {
window.setVisibility(View.GONE);
myWebView.removeView(window);
}
});
myWebView.addView(newWebView);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();
return true;
}