Auf diese Weise wird eine Methode verwendet, mit der Sie einen beliebigen String eingeben können, anstatt eine feste Eingabe zu haben. Dies spart einige Codezeilen, wenn sie mehrmals verwendet werden, da Sie nur drei Zeilen benötigen, um die Methode aufzurufen.
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;
}
Mit dieser Methode ist sie universell einsetzbar. Die IT muss nicht in eine bestimmte Aktivität eingeordnet werden, da Sie sie folgendermaßen verwenden können:
Intent i = getWebIntent("google.com");
if(i != null)
startActivity();
Wenn Sie es außerhalb einer Aktivität starten möchten, rufen Sie einfach startActivity für die Aktivitätsinstanz auf:
Intent i = getWebIntent("google.com");
if(i != null)
activityInstance.startActivity(i);
Wie in diesen beiden Codeblöcken zu sehen ist, gibt es eine Nullprüfung. Dies ist, da es null zurückgibt, wenn es keine App gibt, die die Absicht handhabt.
Diese Methode verwendet standardmäßig HTTP, wenn kein Protokoll definiert ist, da es Websites gibt, die kein SSL-Zertifikat haben (was Sie für eine HTTPS-Verbindung benötigen), und diese funktionieren nicht mehr, wenn Sie versuchen, HTTPS zu verwenden, und es nicht vorhanden ist . Jede Website kann weiterhin auf HTTPS umsteigen, sodass Sie auf beiden Seiten bei HTTPS landen
Da diese Methode externe Ressourcen zum Anzeigen der Seite verwendet, müssen Sie die INternet-Berechtigung nicht deklarieren. Die App, die die Webseite anzeigt, muss dies tun