Запуск приложения Android из ссылки или электронной почты
Я пытался запустить приложение по ссылке в электронном письме или из публикации на некоторых сайтах социальных сетей. Проблема в том, что в некоторых устройствах или приложениях Gmail на Android не отображаются теги привязки или ссылки, которые я указал.
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="myappname" />
И я отправляю письмо с этим тегом привязки
myappname://processtobedone/?id=1
Он отлично работает с почтовым приложением, которое есть у меня на устройстве Huawei, но в приложении gmail по умолчанию на устройстве не отображается ссылка, а на некоторых устройствах по умолчанию он добавляет https: в качестве суффикса для тега и запускает браузер.
Ответы
Ответ 1
Вместо использования настраиваемой схемы вы можете указать <intent-filter>
, который идентифицирует URL-адрес, который вы управляете:
<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:host="www.this-so-does-not-exist.com"
android:path="/something"
android:scheme="http"/>
</intent-filter>
Затем ссылки на http://www.this-so-does-not-exist.com/something
будут отображать ваше приложение (в браузере вместе с веб-браузером) на устройствах, на которых установлено ваше приложение, и выведете свою веб-страницу на устройствах, у которых нет вашего приложения.
Ответ 2
Создайте реальную ссылку (http:), которая управляет веб-сайтом, например статический веб-сайт на amazon s3, используйте javascript на этом сайте для обнаружения пользовательского агента Android и затем перенаправляйте ссылку на привязку.
Ответ 3
<activity
android:name=".SplashEmailActivity"
android:screenOrientation="portrait"
android:exported="true"
android:launchMode="singleInstance" android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize" >
<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="http" android:host="your.domain.name"/>
</intent-filter>
</activity>
Ответ 4
Чтобы вызвать ссылку на приложение на устройстве, например, в вашем случае myappname://processtobedone/?id=1
, самый простой способ - создать базовый HTML файл страницы (с именем deeplink_test.html
) и отправить его на вашу электронную почту после откройте это письмо и перейдите к html файлу, откройте браузер Chrome и нажмите на ссылку привязки.
<html>
<head>
<title>DeepLink Test</title>
<head>
<body>
<a href="myappname://processtobedone/?id=1">run deeplink</a>
<body/>
</html>