Этот способ использует метод, позволяющий вам вводить любую строку вместо фиксированного ввода. Это сохраняет некоторые строки кода, если их использовать многократно, поскольку для вызова метода нужно всего три строки.
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;
}
Использование этого метода делает его универсальным для использования. ИТ не нужно помещать в конкретную деятельность, так как вы можете использовать это следующим образом:
Intent i = getWebIntent("google.com");
if(i != null)
startActivity();
Или, если вы хотите запустить его вне действия, просто вызовите startActivity для экземпляра действия:
Intent i = getWebIntent("google.com");
if(i != null)
activityInstance.startActivity(i);
Как видно из обоих этих блоков кода, есть нулевая проверка. Это как он возвращает ноль, если нет приложения для обработки намерения.
Этот метод по умолчанию использует HTTP, если протокол не определен, так как есть сайты, у которых нет SSL-сертификата (что вам нужно для подключения HTTPS), и они перестанут работать, если вы попытаетесь использовать HTTPS, а его там нет. , Любой веб-сайт все еще может перейти на HTTPS, так что эти стороны в любом случае приводят вас к HTTPS.
Поскольку этот метод использует внешние ресурсы для отображения страницы, вам не нужно объявлять разрешение INternet. Приложение, которое отображает веб-страницу, должно сделать это