Web view en Android

Clase Main


public class MainActivity extends AppCompatActivity {
    public final static String url = "192.168.4.200";
    private WebView mWebView;
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // INI AGREGADO        mWebView = (WebView) findViewById(R.id.web_view);
        // Activamos javascript        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        // Url que carga la app (webview)        mWebView.loadUrl("http://"+url);
        // Forzamos el webview para que abra los enlaces internos dentro de la la APP        mWebView.setWebViewClient(new WebViewClient());
        // Forzamos el webview para que abra los enlaces externos en el navegador        //mWebView.setWebViewClient(new MyAppWebViewClient());        // FIN AGREGADO    }
    @Override    // Detectar cuando se presiona el botón de retroceso    public void onBackPressed() {
        if(mWebView.canGoBack()) {
            mWebView.goBack();
        } else {
            super.onBackPressed();
        }
    }
}

Clase .java


import android.webkit.WebViewClient;
import android.content.Intent;
import android.net.Uri;
import android.webkit.WebView;
/** * Created by  on 09/01/2017. */public class MyAppWebViewClient extends WebViewClient {
    public final static String url = "192.168.4.200";
    @Override    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // Url base de la APP (al salir de esta url, abre el navegador) poner como se muestra, sin http://        if(Uri.parse(url).getHost().endsWith(url)) {
            return false;
        }
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        view.getContext().startActivity(intent);
        return true;
    }
}

main.xml

<WebView    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/web_view"/>

Permisos

<uses-permission android:name="android.permission.INTERNET" />