Android app browser url

WebView — создай свой браузер

Android позволяет создать собственное окно для просмотра веб-страниц или даже создать свой клон браузера при помощи элемента WebView. Сам элемент использует движок WebKit и имеет множество свойств и методов. Мы ограничимся базовым примером создания приложения, с помощью которого сможем просматривать страницы в интернете. В последних версиях используется движок от Chromium, но большой разницы в этом нет для простых задач.

Создадим новый проект MyBrowser и сразу заменим код в файле разметки res/layout/activity_main.xml:

Теперь откроем файл активности MainActivity.java и объявим компонент WebView, а также инициализируем его — включим поддержку JavaScript и укажем страницу для загрузки.

Так как приложение будет использовать интернет, необходимо установить разрешение на доступ к интернету в файле-манифесте.

Там же в манифесте модифицируем строчку для экрана, удалив заголовок из нашего приложения (выделено жирным):

Запустим приложение. В нашем распоряжении появился простейший вьювер веб-страниц, но с одним недостатком. Если вы щёлкнете на любой ссылке, то у вас автоматически запустится браузер по умолчанию и новая страница отобразится уже там. Точнее так было раньше. На новых устройствах при запуске приложения сразу открывается браузер.

Чтобы решить данную проблему и открывать ссылки в своей программе, нужно переопределить класс WebViewClient и позволить нашему приложению обрабатывать ссылки. Добавим в коде вложенный класс:

Затем в методе onCreate() определим экземпляр MyWebViewClient. Он может находиться в любом месте после инициализации объекта WebView:

Теперь в нашем приложении создан WebViewClient, который позволяет загружать любой указанный URL, выбранный в WebView, в сам контейнер WebView, а не запускать браузер. За данную функциональность отвечает метод shouldOverrideUrlLoading(WebView, String), в котором мы указываем текущий WebView и нужный URL. Возвращаемое значение true говорит о том, что мы не нуждаемся в запуске стороннего браузера, а самостоятельно загрузим контент по ссылке. В версии API 24 добавили перегруженную версию метода, учитывайте это обстоятельство.

Повторно запустите программу и убедитесь, что ссылки загружаются теперь в самом приложении. Но теперь возникла ещё одна проблема. Мы не можем вернуться к предыдущей странице. Если мы нажмём на кнопку «BACK» (Назад) на устройстве, то просто закроем своё приложение. Для решения новой проблемы нам необходимо обрабатывать нажатие кнопки «BACK». Добавляем новый метод:

Мы должны проверить, что WebView поддерживает навигацию на предыдущую страницу. Если условие верно, тогда вызывается метод goBack(), который возвращает нас на предыдущую страницу на один шаг назад. Если таких страниц набралось несколько, то мы можем последовательно вернуться к самой первой странице. При этом метод всегда будет возвращать значение true. Когда мы вернёмся на самую первую страницу, с которой начали путешествие по интернету, то вернётся значение false и обработкой нажатия кнопки BACK займётся уже сама система, которая закроет экран приложения.

Запустите приложение ещё раз. У вас появился свой собственный веб-браузер, позволяющий ходить по ссылкам и возвращаться на предыдущую страницу. Изучив документацию, вы можете оснастить приложение и другим вкусными плюшками для своего браузера.

Если вам нужно часть ссылок, ведущих на ваш сайт открывать в браузере, а локальные ссылки открывать в приложении, то применяйте условие с разными возвращаемыми значениями.

Универсальный метод, который все локальные ссылки откроет в приложении, остальные в браузере (меняем одну строчку):

Читайте также:  Юсб шнур для андроид

А сейчас немного усложним пример, чтобы у пользователя появилась альтернатива стандартным браузерам.

Чтобы было понятнее, переделаем пример следующим образом. Создайте две активности. На первой активности разместите кнопку для перехода на вторую активность, а на второй активности разместите компонент WebView.

В манифесте прописываем у второй активности фильтр.

Код для кнопки для перехода на вторую активность.

Мы создали собственное намерение с указанием фильтра и предоставили данные — адрес сайта.

Вторая активность должна принять данные:

В фильтре для второй активности мы указали два действия.

Это означает, что любые активности (читай, приложения) могут вызвать вашу активность с мини-браузером по такому же принципу. Запустите в студии в отдельном окне любой старый проект или создайте новый и добавьте в него кнопку и пропишите тот же код, который мы использовали для щелчка кнопки.

Запустите второе приложение (первое приложение можно закрыть) и нажмите на кнопку. У вас запустится не первое приложение с начальным экраном, а сразу вторая активность с мини-браузером. Таким образом, любое приложение может запустить браузер, не зная имени класса вашей активности, а используя только строку «ru.alexanderklimov.Browser», передаваемую в Intent. При этом ваша активность с браузером должна иметь категорию по умолчанию и данные. Напомню:

Вы можете представить свою строку в виде строковой константы и сообщить всем потенциальным пользователям вашего браузера, как они могут запустить его у себя. Но в Android уже есть такая готовая константа ACTION_VIEW, которая по справке документации представляет собой следующее:

Перепишем код для кнопки у второго приложения

Что произойдёт на этот раз? Мы помним, что у нас прописано два действия, включая и android.intent.action.VIEW. А значит наше первое приложение с браузером тоже должно распознавать эту команду, когда какое-то приложение у пользователя использует этот код. На эмуляторе как минимум есть одна такая программа «Browser», и теперь к ней добавилась наша вторая активность из первого приложения. На экране появится выбор из двух приложений.

А если удалить все альтернативные браузеры и оставить только вашу программу, то и выбора не будет. Ваш браузер станет основным. И если какое-то приложение захочет запустить веб-страницу указанным способом, то откроется ваша программа.

Небольшое замечание. Если заменить последнюю строчку на такую:

То в окне выбора программы вместо верхней строки «Open with» или её локального перевода появится ваша строка. Но не это главное. Если по каким-то причинам на устройстве не окажется ни одного браузера, то данный вариант кода не вызовет краха приложения, в отличие от первоначального варианта. Поэтому используйте предложенный вариант ради надёжности.

Источник

Launching the Browser From Your Android Applications — The Easy Way

This quick tip shows you how to launch the built-in Browser application in three ways. First, you learn how to launch the browser to a specific URL. Second, you learn how to create text with links. Third, you learn how to launch a Google web search and specify the search criteria. You will achieve these goals by creating and configuring the appropriate Intents within your application’s Activity class.

Step 1: Create an Android Application

Begin by creating an Android project. Implement your Android application as normal. Once you have a project set up and the application running, decide under what circumstances you want to launch the browser. Will this occur when Button controls are pressed? Implement the necessary controls that will trigger to web browsing or searching features of the application, including any click handling. Once you have completed these tasks, you have places to drop in the code to launch the browser or web search. Now you are ready to proceed with this quick tip.

You can follow along with our project: HelloWorldWideWeb, which is available as open source.

Step 2: Working with URIs

Android uses Uri (Uniform Resource Identifier) objects to identify the unique location of a piece of data. Uri objects are often used to specify the data that an Intent is supposed to use. In this case, we will create a Uri object from a web URL using the parse() method:

Читайте также:  Бильярд для андроид арк

Step 3: Creating the Intent

You can view HTML content using the following Intent: android.content.Intent.ACTION_VIEW. Begin by creating an Intent of this type and specifying the URI you created above, as follows, within your Button click handler:

Step 4: Launching the Intent

When you launch this Intent, any applications that can display web will be able to handle this request. Once you have set the type data for the Intent, you can call the startActivity() method, passing in your Intent:

When you click on this button, the Browser application (which generally handles HTML content display) is launched to the website you provided.

When you hit the back button, you return to the previous Activity, which happens to be your application.

Another easy way to launch in to the browser is simply by including links within text on the screen. The TextView object can be configured to find these and turn then in to clickable links, like in a web browser, such that when the user clicks on them they launch the browser to the appropriate spot. For instance, the following TextView does just that:

The following screenshot shows what this looks like.

The text for @string/contains_links is verbatim for what you see on the screen. No special formatting commands or tags are needed within the string.

Step 6: Enabling Web Searches

When you want to provide the user with the ability to perform a web search, you could still use the ACTION_VIEW intent and set up the query strings appropriate to a specific search engine, or if you are content with a Google search, you can simply use the web search Intent: android.content.Intent.ACTION_WEB_SEARCH. Begin by creating an Intent of this type, as follows, within your second Button click handler:

Step 7: Supplying Search Criteria

Often, you want to supply some criteria to search on. You can do this by supplying this information as part of the Intent’s extras. The ACTION_WEB_SEARCH Intent specifically uses the SearchManager.QUERY extra field for the search criteria. For example, to perform the Google search on pygmy goats, you configure the SearchManager.QUERY extra and launch the Browser as follows:

When you click on this button, the Browser application (which generally handles HTML content display) is launched to the website you provided.

A Note on Permissions: Although your application is leveraging browser capabilities on the device, it is not required to have any such permissions. This is because the application is not directly displaying web content. Instead, it’s just leveraging other applications’ capabilities to do so.

Becoming a Browser

For more fine control over web content within your applications, you’ll want to use the WebView control. This special view allows fine control over rendering of web content. However, this control will require your application to have the appropriate permissions to do so, and that, friends, is discussed in a tutorial right here on Mobiletuts+!

Conclusion

In this quick tip you have learned how to configure an Intent to launch the Browser as well as perform a search query. This feature can be very useful for applications wishing to web content within their applications.

Источник

Запуск браузера из ваших приложений для Android — легкий путь

Этот быстрый совет показывает, как запустить встроенное приложение браузера тремя способами. Сначала вы узнаете, как запустить браузер по определенному URL. Во-вторых, вы узнаете, как создавать текст со ссылками. В-третьих, вы узнаете, как запустить веб-поиск Google и указать критерии поиска. Вы достигнете этих целей, создав и настроив соответствующие Intents в классе Activity вашего приложения.

Читайте также:  Android text view all

Шаг 1. Создайте приложение для Android

Начните с создания проекта Android. Реализуйте свое Android-приложение как обычно. После настройки проекта и запуска приложения решите, при каких обстоятельствах вы хотите запустить браузер. Будет ли это происходить при нажатии кнопок управления? Реализуйте необходимые элементы управления, которые будут запускать функции просмотра веб-страниц или поиска в приложении, включая любую обработку кликов. После того, как вы выполнили эти задачи, у вас есть места, куда можно вставить код для запуска браузера или веб-поиска. Теперь вы готовы продолжить этот быстрый совет.

Вы можете следовать вместе с нашим проектом: HelloWorldWideWeb, который доступен как открытый исходный код .

Шаг 2. Работа с URI

Android использует объекты Uri (Uniform Resource Identifier) ​​для определения уникального местоположения фрагмента данных. Объекты Uri часто используются для указания данных, которые должен использовать Intent. В этом случае мы создадим объект Uri из веб-URL, используя метод parse ():

Шаг 3: Создание намерения

Вы можете просмотреть содержимое HTML с помощью следующего намерения: android.content.Intent.ACTION_VIEW. Начните с создания Intent этого типа и укажите URI, который вы создали выше, как показано ниже, в вашем обработчике нажатия кнопок:

Шаг 4: запуск намерения

При запуске этого намерения любые приложения, которые могут отображать Интернет, смогут обработать этот запрос. После того, как вы установили данные типа для Intent, вы можете вызвать метод startActivity (), передав свой Intent:

Когда вы нажимаете эту кнопку, приложение Browser (которое обычно обрабатывает отображение содержимого HTML) запускается на веб-сайте, который вы указали.

Когда вы нажимаете кнопку «Назад», вы возвращаетесь к предыдущему действию, которое является вашим приложением.

Шаг 5: Использование ссылок в тексте

Другой простой способ запустить браузер — просто включить ссылки в текст на экране. Объект TextView может быть настроен для их поиска и превращения в интерактивные ссылки, как в веб-браузере, чтобы при нажатии на них пользователь запускал браузер в соответствующем месте. Например, следующий TextView делает именно это:

На следующем скриншоте показано, как это выглядит.

Текст для @ string / Содержит_линки дословно соответствует тому, что вы видите на экране. Никаких специальных команд форматирования или тегов в строке не требуется.

Шаг 6. Включение веб-поиска

Если вы хотите предоставить пользователю возможность выполнять поиск в Интернете, вы все равно можете использовать намерение ACTION_VIEW и настроить строки запроса, соответствующие конкретной поисковой системе, или, если вы довольны поиском Google, вы можете просто использовать Цель поиска в Интернете: android.content.Intent.ACTION_WEB_SEARCH. Начните с создания Intent этого типа, как показано ниже, в вашем втором обработчике нажатия кнопки:

Шаг 7: Предоставление критериев поиска

Часто вы хотите указать критерии для поиска. Вы можете сделать это, предоставив эту информацию как часть дополнений Intent. Назначение ACTION_WEB_SEARCH специально использует дополнительное поле SearchManager.QUERY для критериев поиска. Например, чтобы выполнить поиск Google для карликовых коз, вы настраиваете дополнительный SearchManager.QUERY и запускаете браузер следующим образом:

Когда вы нажимаете эту кнопку, приложение Browser (которое обычно обрабатывает отображение содержимого HTML) запускается на веб-сайте, который вы указали.

Замечание о разрешениях . Хотя ваше приложение использует возможности браузера на устройстве, таких разрешений не требуется. Это связано с тем, что приложение не отображает веб-контент напрямую. Вместо этого он просто использует возможности других приложений.

Стать браузером

Для более точного управления веб-контентом в ваших приложениях вы захотите использовать элемент управления WebView. Это специальное представление позволяет точно контролировать рендеринг веб-контента. Однако этот элемент управления потребует, чтобы у вашего приложения были соответствующие разрешения для этого, и это, друзья, обсуждается в руководстве прямо здесь, на Mobiletuts +!

Вывод

Из этого краткого совета вы узнали, как настроить Intent для запуска браузера и выполнения поискового запроса. Эта функция может быть очень полезна для приложений, желающих использовать веб-контент в своих приложениях.

Источник

Оцените статью