Я внедрил custom URL scheme на Android и iOS с мыслью, что мы отправим пользователю «активационное» письмо , который нажимает ссылку, которая порождает собственное приложение.Невозможно получить gmail для Android, чтобы открыть собственную схему URL-адреса или намерение: // URL-адрес
Технически мы посылаем HTML форматированный письмо со ссылкой, например, как:
<a href="myapp://activate/accountId/uniquetoken">Click to activate</a>
КСН он работает отлично, но на Android, это не работает.
Я видел несколько других сообщений о С.О. и подобных вещах, которые сам андроид должен обрабатывать custom URL scheme, но укажите, что это браузер Chrome и приложение GMail для Android, которое лишает эти пользовательские myapp://
URL-адреса.
В соответствии с рекомендацией некоторых из этих сообщений я попытался создать URL-адрес намерения. Я пробовал все следующие
intent://activate#Intent;scheme=myapp;package=com.mycompany.myapp;end
#Intent;action=activate;end
#Intent;component=com.mycompany.myapp/.ui.MainActivity;end
intent://#Intent;component=com.mycompany.myapp/.ui.MainActivity;end
но никто из них не работал. Ни один из них не был доступен из приложения GMail для Android на Android 6, а документация андроида в формате для намерения uri невероятно плохо документирована. Лучшее, что я могу найти «программно создать свое намерение в Java, а затем вызвать .toUri на нем» (который, как я произвел большую часть разбитого намерения Ури выше)
Любая помощь будет высоко ценится
Update 1. Вот моя деятельность и намерения от Android манифеста
<activity android:name=".ui.MainActivity" android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- load via URL scheme -->
<intent-filter>
<data android:scheme="myapp" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Я попытался создать веб-сервер, который «отражает» назад к схеме пользовательских приложений, и это работает для обоих Android и iOS
<a href="http://mycloudserver.net/myapp/activate/accountId/uniqueToken">Click</a>
Эта страница делает 302 перенаправления
myapp://activate/accountId/uniqueToken
Веб-браузер (Chrome для Android) следует переадресацию, который вызывает нативный приложение для запуска, так что это обеспечить решение (сортов) для приложения Gmail для Android.
Он вводит искусственную зависимость от облачного сервера, хотя это было бы хорошо избежать.
На iOS он также оставляет пустую страницу в браузере Safari, что является незначительным, но несчастливым.
Для 'myapp: // activate/accountId/uniqueToken' вам может потребоваться указать полный путь в вашем намерении или, по крайней мере, достаточно далеко на пути, который« фильтр-замысел »в вашем' AndroidManifest.xml 'может идентифицировать его. Не могли бы вы вставить свой 'намеренный фильтр' 'AndroidManifest.xml', который обрабатывает схему URL? – nicobatu