Цей спосіб використовує метод, що дозволяє вводити будь-яку рядок замість фіксованого вводу. Це зберігає деякі рядки коду, якщо використовується повторна кількість разів, оскільки для виклику методу потрібно лише три рядки.
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
Оскільки цей метод використовує зовнішні ресурси для відображення сторінки, вам не потрібно заявляти дозвіл на Інтернет. Додаток, який відображає веб-сторінку, повинен це зробити