@AndreyRafalsky132

Как открыть конкретную активность приложения, когда пользователь кликнет на ссылку?

Реализую функциональность "Забыли пароль?" с помощью Firebase Auth. На почту приходит ссылка, при клике на которую открывается примитивная форма с одним полем для ввода нового пароля. Я же хочу, чтобы открывалась конкретная активность в приложении, где пользователь должен ввести пароль и потом подтвердить его. Как реализовать такую функциональность? Читал, что это реализуется с помощью динамических ссылок, но конкретных примеров не нашел. Заранее благодарен за помощь.
  • Вопрос задан
  • 141 просмотр
Решения вопроса 2
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
я работал, где-то пол года назад с этой технологией и с ней были кое-какие проблемы, но думаю что их далжны были пофиксить. вот статьи
https://medium.com/mindorks/working-with-firebase-...
https://medium.com/@1991chester/deep-links-fc993c7242af
https://firebase.apptractor.ru/firebase-na-android...
и конечно https://firebase.google.com/docs/dynamic-links/and...
можете попробовать вот этот проект https://github.com/firebase/quickstart-android/tre...
Ответ написан
Комментировать
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Нужно настроить у активити в манифесте intent filter на BROWSABLE/VIEW/DEFAULT, а в классе активити обрабатывать intent в onCreate() и в onNewIntent()

Пример
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AndreyRafalsky132 Автор вопроса
Спасибо за помощь. Реализовал открытие активности, когда пользователь кликает на ссылку. Теперь возникла другая проблема. Мне нужно получить параметры из этой ссылки. Для этого мне нужно получить сначала ее. Я это делаю следующим образом:
FirebaseDynamicLinks.getInstance()
                .getDynamicLink(getIntent())
                .addOnSuccessListener(pendingDynamicLinkData -> {
                    if (pendingDynamicLinkData != null){
                        String link = pendingDynamicLinkData.getLink().getUserInfo();
                        Log.d("MyPlanner", link);
                    }
                })
                .addOnFailureListener(exception -> {
                    Log.d("MyPlanner", exception.getMessage());
                });

Проблема в том, что в pendingDynamicLinkData лежит null. В чем причина не пойму.
Вот мой манифест:
<activity android:name=".view.activity.SaveNewPasswordActivity">
            <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="coditrafalsky.page.link"
                    android:scheme="https"
                    android:path="/reset"/>

            </intent-filter>
        </activity>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы