Этот способ использует метод, позволяющий вам вводить любую строку вместо фиксированного ввода. Это сохраняет некоторые строки кода, если их использовать многократно, так как для вызова метода требуется всего три строки.
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. Приложение, которое отображает веб-страницу, должно сделать это