Dessa maneira, é utilizado um método para permitir a entrada de qualquer String em vez de ter uma entrada fixa. Isso economiza algumas linhas de código se usado várias vezes, pois você só precisa de três linhas para chamar o 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;
}
O uso desse método o torna universalmente utilizável. A TI não precisa ser colocada em uma atividade específica, pois você pode usá-la assim:
Intent i = getWebIntent("google.com");
if(i != null)
startActivity();
Ou, se você deseja iniciá-lo fora de uma atividade, basta chamar startActivity na instância da atividade:
Intent i = getWebIntent("google.com");
if(i != null)
activityInstance.startActivity(i);
Como visto nesses dois blocos de código, há uma verificação nula. É assim que retorna nulo se não houver um aplicativo para lidar com a intenção.
O método padrão é HTTP, se não houver um protocolo definido, pois existem sites que não possuem um certificado SSL (o que você precisa para uma conexão HTTPS) e esses pararão de funcionar se você tentar usar HTTPS e ele não estiver lá. . Qualquer site ainda pode forçar o HTTPS, então esses lados o levam ao HTTPS de qualquer maneira
Como esse método usa recursos externos para exibir a página, não é necessário declarar a permissão INternet. O aplicativo que exibe a página da web precisa fazer isso