私はwebviewサービスで自分のアプリケーションを構築していて、別のウィンドウ(デフォルトのシステムブラウザでも同じWebビューでもない)で新しいURLを開こうとしています。私は、私も間違いなく真に私ののWebView setSupportMultipleWindowsを持っていたなぜAndroid WebChromeClientのonCreateWindowメソッドが呼び出されなかったのですか?
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;
}
}
、以下のように自分のWebViewClientとWebChromeClientを設定します。
しかし、onCreateWindowは呼び出されませんでした。私が逃したものはありますか?
ありがとうございます。
あなたのonCreate()メソッドはどのように見えますか? –
私は別のWebビューで新しいURLをロードしたいだけです。正直言って、どこかにコピーしました – fifth
こんにちは@fifth同じ解決方法はありましたか? –