De esta manera, se utiliza un método que le permite ingresar cualquier Cadena en lugar de tener una entrada fija. Esto guarda algunas líneas de código si se usa varias veces, ya que solo necesita tres líneas para llamar al método.
public Intent getWebIntent(String url) {
//Make sure it is a valid URL before parsing the URL.
if(!url.contains("http://") && !url.contains("https://")){
//If it isn't, just add the HTTP protocol at the start of the URL.
url = "http://" + url;
}
//create the intent
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)/*And parse the valid URL. It doesn't need to be changed at this point, it we don't create an instance for it*/);
if (intent.resolveActivity(getPackageManager()) != null) {
//Make sure there is an app to handle this intent
return intent;
}
//If there is no app, return null.
return null;
}
El uso de este método lo hace universalmente utilizable. No es necesario ubicarlo en una actividad específica, ya que puede usarlo así:
Intent i = getWebIntent("google.com");
if(i != null)
startActivity();
O si desea iniciarlo fuera de una actividad, simplemente llame a startActivity en la instancia de actividad:
Intent i = getWebIntent("google.com");
if(i != null)
activityInstance.startActivity(i);
Como se ve en ambos bloques de código, hay una comprobación nula. Esto es así porque devuelve nulo si no hay una aplicación para manejar la intención.
Este método predeterminado es HTTP si no hay un protocolo definido, ya que hay sitios web que no tienen un certificado SSL (lo que necesita para una conexión HTTPS) y esos dejarán de funcionar si intenta usar HTTPS y no está allí . Cualquier sitio web todavía puede pasar a HTTPS, por lo que esos lados te llevan a HTTPS de cualquier manera
Debido a que este método utiliza recursos externos para mostrar la página, no es necesario que declare el permiso INternet. La aplicación que muestra la página web tiene que hacer eso