Reputation: 1
I wanted to write a small webview code for a mobile version.
Everything works, but sometimes I can't open a link.
I guess there is a mistake on the shouldOverrideUrlLoading
.
I do this "?mt=1" to force the mobile version of the website.
Thank you for your help.
Best wishes Dominik
package com.webview.atmclassicparts;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
webView = new WebView(MainActivity.this);
setContentView(webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setUserAgentString("Android 4.2.2");
webView.loadUrl("http://www.***.de/index.php?mt=1");
webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(!url.toLowerCase().contains("http://www.***.de"))
{
String url2 = url + "?mt=1";
return true;
}
return false;
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Prüfen, ob wirklich Zurück gedrückt wurde und ob vorher Seiten besucht wurden
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
// Wenn es nicht die Zurück-Taste war oder keine Seitenhistory verfügbar ist, wird die Default- Methode ausgeführt. Meist ist dass das Beenden der Aktivität
return super.onKeyDown(keyCode, event);
}
}
Upvotes: 0
Views: 803
Reputation: 3231
You're not forcing the mobile version of your site, you're ignoring that call.
webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(!url.toLowerCase().contains("http://www.***.de"))
{
String url2 = url + "?mt=1";
view.loadUrl(url2); // <<--- you were missing this
return true;
}
return false;
}
});
Upvotes: 1