Как зарегистрировать некоторое пространство имен URL (myapp://app.start/) для доступа к Вашей программе путем называния URL в браузере в Android ОС?

Таким образом, я хочу создать приложение для Android, таким образом, оно было бы зарегистрировано где-нибудь в android OS (или просто запустится в системе, запускаются), и когда телефонный пользователь нажимает на специальную кнопку на веб-странице в веб-браузере а-ля:

 <a href="myapp://mysettings">Foo</a> 

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

Таким образом, как я делаю такую вещь?

Мне нужно учебное руководство с кодом!

52
задан Michael Petrotta 11 March 2010 в 16:08
поделиться

1 ответ

Вам необходимо следовать стандартным правилам для URI через W3C и тому подобное, что в основном означает: не делайте этого.

Android определяет синтаксис Uri для описания общего намерения. В Intent есть методы для преобразования в это представление и из него, например: http://developer.android.com/reference/android/content/Intent.html#toUri (int)

Итак, способ сделать это - использовать обычные средства для описания в вашем манифесте типов намерений, которые вы собираетесь обрабатывать с конкретным компонентом, особенно определение имени действия в вашем собственном пространстве имен (com.mycompany.myapp.action.DO_SOMETHING или что-то еще ). Затем вы можете создать намерение, соответствующее вашему компоненту, и использовать Intent.toUri (), чтобы получить его представление URI. Его можно поместить в вашу ссылку, а затем при нажатии искать что-то, что обрабатывает, и, таким образом, найти ваше приложение. Обратите внимание, что для запуска из браузера таким образом компонент должен обрабатывать категорию BROWSABLE. (Вам не нужно указывать это в намерении, которое вы помещаете в ссылку, браузер автоматически добавит это за вас.)

Наконец, вы можете захотеть установить пакет намерения для своего приложения следующим образом: http://developer.android.com/reference/android/content/Intent.html#setPackage (java.lang.String)

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

В итоге: прочтите обычную документацию по намерениям и фильтрам намерений (например, учебник по NotePad, хотя вы не будете использовать здесь content: URI, возможно, просто настраиваемые действия) и заставьте свое приложение работать таким образом. Затем вы можете создать ссылку на браузер для запуска вашего приложения таким же образом, при условии, что ваш фильтр намерений обрабатывает категорию BROWSABLE.

48
ответ дан 7 November 2019 в 09:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: