В этом случае используется метод, позволяющий вводить любую строку вместо фиксированного ввода. Это позволяет сэкономить несколько строк кода при повторном использовании, так как вам нужно всего три строки для вызова метода.
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);
Как видно в обоих этих блоках кода, есть проверка на null. Это означает, что он возвращает значение null, если нет приложения для обработки намерения.
По умолчанию для этого метода используется HTTP, если протокол не определен, поскольку есть веб-сайты, у которых нет сертификата SSL (что вам нужно для HTTPS-соединения), и они перестанут работать, если вы попытаетесь использовать HTTPS, а его там нет. . Любой веб-сайт по-прежнему может принудительно перейти на HTTPS, поэтому эти стороны в любом случае переводят вас на HTTPS.
Поскольку этот метод использует внешние ресурсы для отображения страницы, вам не нужно объявлять разрешение INternet. Приложение, которое отображает веб-страницу, должно это делать.
person
Zoe
schedule
01.05.2017