Как сделать ссылку на приложение андроид
Я знаю, что это работает для приложения Android Market с рыночным протоколом, но можно ли сделать нечто подобное с другими приложениями?
Вот пример ссылки, которая запускает Android Market:
Обновление: Ответ, который я принял от eldarera, отлично работает, но я просто хочу упомянуть, что у меня возникли некоторые проблемы с порядком подэлементов <intent-filter> тега. Я предлагаю вам просто сделать еще один <intent-filter> с новыми подэлементами в этом теге, чтобы избежать проблем, которые у меня были. Например, моя AndroidManifest.xml выглядит так:
Это решило мою проблему, когда я не могу открыть приложение на своем мобильном телефоне. +1 за упоминание порядка тегов xml. Это не имеет абсолютно никакого смысла и нигде не документировано, но я обнаружил, что, когда у меня есть тег данных ниже тегов action и category, он просто не будет работать. Перенаправление на приложение и корректный откат назад, если приложение отсутствует, также может быть немного кошмаром, учитывая сложности всех различных браузеров Android (Chrome, Default, Webviews, Firefox и т. Д.). Служба branch.io помогает сделать это и является бесплатной. @Anton . привет, сэр . по приведенному выше коду, я понимаю, что могу обрабатывать только данные из ссылки . Скажите, пожалуйста, как мне создать ссылку, которая содержит мои данные . помогите я . Я хочу создать ссылку с данными о событии нажатия кнопки .. ⚠️ Я преодолел препятствие отладки, о котором другие, возможно, захотят знать: ссылки работают с <a href=""> ссылок на веб-страницах и при запуске с adb, но теперь, когда вы просто набираете URL-адрес в мобильном телефоне адресная строка браузера.⚠️Я думаю, вы захотите посмотреть на <intent-filter> элемент вашего файла Mainfest. В частности, посмотрите на документацию для <data> подэлемента.
По сути, вам нужно определить свою собственную схему. Что-то вроде:
Тогда вы сможете запустить свое приложение со ссылками, которые начинаются со anton: схемы URI.
Это прекрасно работает на предыдущих версиях Android, но не на леденец, любое решение? Этот ответ устарел .. этот пост не будет работать после Chrome 40. Пользовательская схема была отключена в Chrome из-за проблем с безопасностьюПожалуйста, НЕ используйте свою собственную схему! Схемы URI являются сетевым глобальным пространством имен. У вас есть схема "anton:" во всем мире? Нет? Тогда не используйте его.
Одним из вариантов является наличие веб-сайта и фильтр намерений для определенного URI на этом веб-сайте. Например, вот что Market делает для перехвата URI на своем веб-сайте:
В качестве альтернативы, есть схема «намерение:». Это позволяет вам описать практически любой Намерение как URI, который браузер попытается запустить при нажатии. Чтобы построить такую схему, лучше всего написать код для создания намерения, которое вы хотите запустить, а затем распечатать результат intent.toUri (Intent.URI_INTENT_SCHEME).
Вы можете использовать действие с этим намерением, чтобы найти любое действие, поддерживающее это действие. Из соображений безопасности браузер автоматически добавит категорию BROWSABLE в намерение перед его запуском; он также удалит любой явный компонент, который вы предоставили по той же причине.
Лучший способ использовать это, если вы хотите, чтобы он запускал только ваше приложение, - это использовать собственное действие с заданной областью действия и использовать Intent.setPackage (), чтобы сказать, что Intent будет соответствовать только вашему приложению.
Компромиссы между двумя:
Можно ли получить ссылку на своё android приложение, если ты его еще не выставил в Google Play, но хочешь скачать себе или другу на телефон?
Анна, для того чтобы скачать приложение себе или другу скиньте APK файл на облачное хранилище и распространяйте ссылку друзьям, при установке из APK напрямую нужно включить на устройстве установку из неизвестных источников. Другой вариант - купить Аккаунт разработчика в Google Play за 25$, создать там приложение, подписать его электронным ключом, и выложить как закрытую beta версию, и тогда распространять друзьям ссылки на приложения. В таком случае только вы и ваши друзья, которые получили ссылки, смогут воспользоваться вашим приложением.
Нужно добавить, что при установке из APK напрямую нужно включить на устройстве установку из неизвестных источников. Но, вообще вариант с закрытой альфой или бетой в Google Play в подобных случаях самый правильный. Вариант с выкладыванием апк на сервер или его рассылкой неудобен тем, что каждый раз при новой версии придется каждому об этом говорить и каждому придется снова вручную скачивать и устанавливать. @Эникейщик так есть вариант с выкладыванием на Google Play)) но затратный. Пусть выбирают какой лучше. Я просто рассказал о возможных неудобствах первого варианта :)Google предоставляет удобные средства для тестирования приложений. Воспользуйтесь "внутренним тестированием" и внесите до 100 адресов учетных записей. Ссылка на скачивание вам будет предоставлена.
1,360 1 1 золотой знак 6 6 серебряных знаков 14 14 бронзовых знаковЕсть возможность скачать приложение через интернет с файлообменика. Просто скиньте скомпилированый файл на него. Скомпилированый файл можно найти по Ваш проект\app\build\outputs\apk\debug\app_debug.apk
Есть ещё один вариант, на данный момент является бесплатным, если вам нужно именно груповое тестирование то можно так же воспользоваться ещё beta от Fabric.io
В связи с последними обновлениями, буду стараться выкладывать уроки, созданные при помощи Android Studio.
Способов реализации данной задачи может быть множество. В итоге, нам нужно разместить на экране простой текстовый элемент, который будет похож на обычную ссылку и будет реагировать на касания. Описать этот элемент можно статически в файле разметки (layout), а можно и добавить динамически, по мере надобности.
В данном уроке будет описан первый способ с четырьмя реализациями.
Создадим новый проект. В мастере выберем Blank Activity
Назовем его LinkTest.
Вот код разметки activity_main.xml :
Это схемка для уточнения:
Android Studio нам сразу же показывает итоговый экран. т.е. как будет выглядеть на устройстве.
Пока это не то, что в заголовке статьи, потому как мы изменим вид разметки в коде.
Вот весь код MainActivity:
Теперь расскажу про каждую ссылку по порядку.
В методе blogView мы создадим намерение (intent) и запустим новую активность с этим намерением (startActivity(openlink)).
ОС Android сама поймет по намерению, что нужно запустить, т.е. браузер.
Узнаваемым мы его сделаем при помощи SpannableString, текст можно сделать жирным, подчеркнутым и т.д., более подробно почитайте об интерфейсе Spannable.
Второй элемент TextView с id равным tv_link2 мы задаем при помощи HTML, потом получаем из функции Html.fromHtml(linkedText) объект Spanned и его устанавливаем в TextView . Позже задаем ему MovementMethod (tv_test2.setMovementMethod(LinkMovementMethod.getInstance())), с помощью этого интерфейса можно реализовать много интересных вещей. При работе с простым TextView, мы используем класс LinkMovementMethod, как гласит документация, он поддерживает клики по ссылкам.
Третий элемент TextView с id равным tv_link3 создает ссылку просто:
Всю работу взял на себя метод класса Linkify.addLinks ,по сути он проделывает всю предыдущую работу по установке LinkMovementMethod, но перед этим проверяет текст на соответствие шаблонам ссылок.
Очевидно, что последний способ является самым менее трудозатратным и удобным, когда речь идет о статической ссылке.
В этом руководстве показано, как в Android 6.0 используется методика связывания приложений, позволяющая мобильным приложениям реагировать на URL-адреса веб-сайтов. Вы узнаете, что такое связывание приложений, как реализовать связывание приложений в приложении Android 6.0 и как настроить доступ к домену для мобильного приложения на веб-сайте.
Общие сведения о связывании приложений
Мобильные приложения прочно вошли в обиход — во многих случаях это важные компоненты бизнеса наряду с веб-сайтом компании. Предприятиям нужна возможно легко объединять решения для веб-репрезентации с мобильными приложениями, чтобы ссылки на веб-сайте могли запускать мобильные приложения и отображать в них соответствующее содержимое. Связывание приложений (также называется глубинное связывание) — это один из методов, позволяющих мобильному устройству реагировать на URI и запускать соответствующее мобильное приложение.
Android 6.0 улучшает этот механизм, применяя автоматическую обработку ссылок. Android может автоматически регистрировать приложение в качестве обработчика по умолчанию для URI, и тогда это приложение запустится автоматически и сразу перейдет к соответствующему действию. Android 6.0 принимает решения об обработке URI по следующим критериям:
- Есть существующее приложение, уже связанное с этим URI — возможно, пользователь уже сопоставил с этим URI существующее приложение. В этом случае Android продолжит использовать это приложение.
- Нет существующего приложения, связанного с этим URI, но установлено одно совместимое с ним приложение — в этом случае, хотя пользователь и не указал существующее приложение, Android вызовет установленное совместимое приложение для обработки запроса.
- Нет существующего приложения, связанного с этим URI, но установлено несколько совместимых с ним приложений — так как сразу несколько приложений поддерживают обработку этого URI, откроется диалоговое окно для устранения неоднозначности, где пользователю нужно выбрать одно приложение для обработки URI.
Если у пользователя нет ни одного приложения, совместимого с этим URI, но оно будет установлено позже, система Android автоматически назначит это приложение как обработчик по умолчанию для этого URI, предварительно проверив его связь с веб-сайтом, которому принадлежит URI.
В этом руководстве показано, как настроить приложение Android 6.0, а также создать и опубликовать файл ссылок на цифровые ресурсы для поддержки связывания приложений в Android 6.0.
Требования
Для работы с этим руководством требуется Xamarin.Android 6.1 и приложение, предназначенное для использования Android 6.0 (API уровня 23) или выше.
Связывание приложений в более ранних версиях Android реализуется через пакет NuGet Rivets из магазина компонентов для Xamarin. Пакет Rivets не совместим с механизмом связывания приложений в Android 6.0 и не поддерживает этот механизм.
Настройка связывания приложений в Android 6.0
Настройка связывания приложений в Android 6.0 включает два основных этапа.
- Добавление одного или нескольких фильтров намерений для URI веб-сайта — фильтр намерений позволяет Android понять, как обрабатывать щелчок по ссылке в мобильном браузере.
- Публикация JSON-файла ссылок на цифровые ресурсы на веб-сайте — это файл, который загружается на веб-сайт и используется платформой Android для проверки взаимосвязи между мобильным приложением и домена этого веб-сайта. Без этой проверки Android не будет устанавливать приложение как обработчик по умолчанию для URI, и пользователю придется выполнить это вручную.
Настройка фильтра намерений
Вам нужно настроить фильтр намерений, который сопоставляет URI (или даже набор из нескольких URI) некоторого веб-сайта с действием в приложении Android. В Xamarin.Android такое сопоставление устанавливается путем назначения действию атрибута IntentFilterAttribute. Фильтр намерений должен объявлять следующую информацию:
Android сверит все узлы, которые указаны в фильтрах намерений, с файлом цифровых ресурсов на веб-сайте, прежде чем зарегистрировать приложение в качестве обработчика по умолчанию для этого URI. Все фильтры намерений должны пройти проверку, прежде чем Android применит приложение как обработчик по умолчанию.
Создание файла ссылок на цифровые ресурсы
Для связывания приложений в Android 6.0 требуется, чтобы Android проверял все связи между приложением и веб-сайтом, прежде чем устанавливать приложение в качестве обработчика по умолчанию для URI. Такая проверка выполняется при первой установке приложения. Файл ссылок на цифровые ресурсы имеет формат JSON и размещается на всех соответствующих поддоменах.
Фильтр намерений – должен установить атрибут android:autoVerify , иначе Android не будет выполнять проверку.
Файл цифровых ресурсов содержит метаданные, необходимые для проверки связи платформой Android. Файл assetlinks.json содержит следующие пары "ключ — значение":
- namespace — пространство имен приложения Android;
- package_name — имя пакета для приложения Android (объявляется в манифесте приложения);
- sha256_cert_fingerprints — отпечаток SHA256 для подписанного приложения. Дополнительные сведения о получении отпечатков SHA1 для приложения см. в статье Отображение MD5 и SHA1 сигнатур хранилища ключей.
Ниже приведен пример файла assetlinks.json, где указано одно приложение:
Вы можете зарегистрировать боле одного отпечатка SHA256, чтобы поддерживать несколько версий или сборок приложения. В следующем файле assetlinks.json представлен пример регистрации нескольких приложений:
Веб-сайт Google по ссылкам на цифровые ресурсы предоставляет онлайн-средство для создания и тестирования файла цифровых ресурсов.
Тестирование связывания приложений
Реализовав связывание приложения, следует проверить разные элементы этого механизма и убедиться, что они работают должным образом.
Вы можете убедиться, что файл цифровых ресурсов имеет правильный формат и правильно размещен, используя API Google для ссылок на цифровые ресурсы, как показано в этом примере:
Существует два теста, которые можно выполнить для проверки правильности фильтров намерений и настройки приложения в качестве обработчика по умолчанию для URI.
Отобразите существующие политики обработки ссылок для приложений, установленных на конкретном устройстве. Следующая команда выводит список политик для каждого пользователя на устройстве с указанной здесь информацией. В командной строке введите следующую команду:
- Package — имя пакета для приложения.
- Domain — домены, разделенные пробелами, ссылки для которых будут обрабатываться этим приложением.
- Status — текущее состояние обработки ссылок для этого приложения. Значение always означает, что приложение объявило android:autoVerify=true и прошло проверку в системе. После него указывается шестнадцатеричное число, обозначающее запись приоритета в системе Android.
Сводка
В этом руководстве описана методика связывания приложений в Android 6.0. Затем мы описали, как правильно настроить приложение Android 6.0 для включения поддержки ссылок и реагирования на них. Мы также обсудили, как протестировать связывание приложений для приложения Android.
Читайте также: