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" />