Sie müssen einen WebViewClient einrichten, um dieses Verhalten zu überschreiben (Öffnen von Links mit dem Webbrowser). Sie haben offensichtlich Ihr WebView deklariert, aber dann einen WebViewClient wie folgt eingerichtet:
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new WebViewClient());
Dann müssen Sie Ihren WebViewClient() definieren:
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getHost().equals("www.example.com")) {
// Designate Urls that you want to load in WebView still.
return false;
}
// Otherwise, give the default behavior (open in browser)
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
}
Starten Sie dann Ihren WebViewClient:
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new MyWebViewClient());
http://developer.android.com/guide/webapps/webview.html
Ich stehe vor dem gleichen Problem und habe es gerade behoben, indem ich eine einzelne Zeile hinzugefügt habe.
webview.setWebViewClient(new WebViewClient());
und das hat mein Problem gelöst.
Sie müssen wvBikeSite.setWebViewClient aufrufen, zB:
MyWebViewClient wvc = new MyWebViewClient();
wvBikeSite.setWebViewClient(wvc);
Wo MyWebViewClient überschreibt shouldOverrideUrlLoading, nämlich:
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
Verwenden Sie diesen Code:
// Force links and redirects to open in the WebView instead of in a browser
mWebView.setWebViewClient(new WebViewClient());
Sie können die URL jederzeit in der Webansicht öffnen, indem Sie Folgendes verwenden:
@Override
public void onCreate(Bundle savedInstanceState) {
webview.setWebViewClient(new MyWebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setPluginsEnabled(true);
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onLoadResource(WebView view, String url){
}
}
Ich mochte das und es funktioniert perfekt..
mWebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null && url.startsWith("http://")) {
mWebView.loadUrl(url);
return true;
} else {
return false;
}
}
});
.