Androidスタジオでwebviewのページを表示するアプリケーションを作成していますが、同じWebviewでtarget = '_ blank'のページを開くことができません。 これはできますか?Webview android target = '_ blank'
現在、私はこれを持っています。現在、target = '_ blank'のリンクをクリックすると何も起こりません。 私がonCreateWindowを変更すると、リンクは外部ブラウザで開きますが、そのようなことは起こりたくありません。
私はそれを検索しようとしましたが、解決策を見つけることができません。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.myWebView);
myWebView.loadUrl("http://test.dk");
myWebView.setWebViewClient(new MyWebViewClient());
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setSupportMultipleWindows(true);
myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, android.os.Message resultMsg)
{
WebView.HitTestResult result = view.getHitTestResult();
String data = result.getExtra();
//Context context = view.getContext();
//Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(data));
//context.startActivity(browserIntent); // opens in external browser
myWebView.loadUrl(data); //don't work!
return false;
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (myWebView.canGoBack()) {
myWebView.goBack();
} else {
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
// Use When the user clicks a link from a web page in your WebView
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
}
shouldOverrideUrlLoading方法変更の戻り値の型を作成します。 –
shouldOverrideUrlLoadingをtrueに変更すると、白いページが表示されます。何もロードされません。 – Birger