Запустить приложение с URL-адресом

Я читал о намерениях в android, но здесь идет мой вопрос. Я хотел бы запустить приложение на своем телефоне Android с щелчком ссылки в веб-браузере. Пример: если ссылка «mycam: // http://camcorder.com », «mycam: //» действует как «тег» для запуска моего приложения, но я бы хотел передать « http: // Camcorder.com "в качестве строки для этого приложения при запуске.

Помоги пожалуйста!

Благодаря!

В исходном коде приложения для браузера есть метод:

public boolean shouldOverrideUrlLoading(WebView view, String url) { ... } 

После того, как URL-адрес щелкнул и он еще не начал загружаться:

  1. Преобразует URL в намерение

     Intent intent; // perform generic parsing of the URI to turn it into an Intent. try { intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); } catch (URISyntaxException ex) { Log.w("Browser", "Bad URI " + url + ": " + ex.getMessage()); return false; } 
  2. Если он не начинается с рынка: // (или некоторые предопределенные схемы), попробуйте startActivityIfNeeded ()

     intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); try { if (startActivityIfNeeded(intent, -1)) { return true; } } catch (ActivityNotFoundException ex) { // ignore the error. If no application can handle the URL, // eg about:blank, assume the browser can handle it. } 

Это очень полезная информация! Я снова воспроизвожу ситуацию в простом коде:

 Intent intent = Intent.parseUri("mycam://http://camcorder.com", Intent.URI_INTENT_SCHEME); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); System.out.println(intent); 

Результат предоставит мне подсказку, чтобы написать действие с помощью фильтра-намерения:

  <activity android:name=".MyCamActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="mycam" /> </intent-filter> </activity> 

PS. Не забывайте android.intent.category.DEFAUL .

Наконец, ваша активность может быть вызвана схемой mycam: //

Mycam: // http://camcorder.com не является допустимым URI, а схемы составления выглядят пугающе, если два приложения выбирают один и тот же. Было бы лучше, если бы вы зарегистрировали свою деятельность как обработчик для определенного URI (например, http://www.example.com/camcorder, заменив свой собственный домен, конечно). Вы делаете это с тегом <data> в теге <intent-filter> в AndroidManifest.xml . Когда пользователь нажимает на ссылку, они будут отправлены в ваше приложение. Таким образом, вы также можете разместить настоящую страницу в Интернете, инструктируя людей устанавливать приложение или что-то еще.

Intereting Posts
Как запустить модульные тесты для проектов библиотеки Xamarin (iOS и Android)? Проблемы с воспроизведением потокового аудио на Android Samsung Galaxy S Есть ли способ получить исходный код из файла APK? Android-фрагмент – findViewById возвращает null Различия в дизайнах макетов Android между версиями 2.3.3 и 4+ Android, эквивалентный индексированному iphone UITableView Как изменить текст изменения и цвет стрелки на панели инструментов? Android: преобразование Dex не удалось при импорте Как решить ошибку «Недопустимое использование BasicClientConnManager: убедитесь, что вы освободили соединение до выделения другого» в Android? Выполнение модульных тестов перед каждой сборкой в ​​Gradle Внедрение навигации «Drilldown» в Android App UI Получение USB-кабеля, подключенного к входу IN / OUT с использованием EXTRA_PLUGGED, не работает Изменение изображения кнопки изображения до нажатия Настроить контекстное меню, например, меню pinterest Лучшая практика для расчета средней скорости от координат GPS