Webview android target='_blank'

Viewed 3880

I'm building a App in Android Studio that shows a page in a webview, but I can't seem to get the webview to open pages with target='_blank' in the same webview. Can this be done?

Currently I have this. As it is now nothing happens when I click a link with target='_blank' If I change my onCreateWindow I the link open in a external browser, but I don't want tha to happen.

I've tried googling it but can't find a solution.

    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;
    }
}
1 Answers
Related