Ich baue eine App in Android Studio, die eine Seite in einer Webansicht zeigt, aber ich kann nicht scheinen, die Webansicht zu öffnen Seiten mit target = '_ blank' in der gleichen Webansicht . Kann dies getan werden?Webview android target = '_ blank'
Derzeit habe ich das. Wie es jetzt passiert passiert nichts, wenn ich auf einen Link mit target = '_ blank' klicke Wenn ich mein onCreateWindow ändere, öffne ich den Link in einem externen Browser, aber das soll nicht passieren.
Ich habe es googeln versucht, kann aber keine Lösung finden.
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 Methode ändern Rückgabetyp auf true private Klasse schaffen; –
Wenn ich shallOverrideUrlLoading zu True ändern, bekomme ich nur eine weiße Seite .. Nichts lädt – Birger