Как перехватить диплинки на Android с помощью React-NativeAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как перехватить диплинки на Android с помощью React-Native

Сообщение Anonymous »

В настоящее время я реализую библиотеку React Native, которая включает в себя собственные модули Android и iOS. Одна из функций этой библиотеки — отправка глубинной ссылки обратно в хост-приложение всякий раз, когда внутри SDK происходит определенное действие.
В iOS все работает как положено — глубокая ссылка принимается и корректно обрабатывается React Native.

Однако на Android глубокая ссылка никогда не достигает уровня React Native.
Я подозреваю, что проблема в том, на стороне Android, но я не уверен, что делаю неправильно.

Android – как активировать глубокую ссылку
Это код, который я использую в своем собственном модуле Android для запуска приложения с глубокой ссылкой:

Код: Выделить всё

internal fun launch(context: Context, dataUri: Uri?) {
val launchAppIntent = context.packageManager
.getLaunchIntentForPackage(context.packageName)
?.apply {
data = dataUri
flags = FLAG_ACTIVITY_NEW_TASK or
FLAG_ACTIVITY_SINGLE_TOP or
FLAG_ACTIVITY_REORDER_TO_FRONT
}

if (launchAppIntent != null && dataUri != null) {
context.startActivity(launchAppIntent)
}
}
React Native – как я слушаю глубокие ссылки
В моем тестовом приложении я слушаю такие глубокие ссылки:

Код: Выделить всё

useEffect(() => {
// Handle deep link when app is cold-started
Linking.getInitialURL().then((url) => {
console.log("deeplink url received:", url);
if (url) handleDeepLink(url);
});

// Handle deep link when app is already running
const subscription = Linking.addEventListener("url", (event) => {
console.log("deeplink url received:", event.url);
handleDeepLink(event.url);
});

return () => {
console.log("Removing deep link listener");
subscription?.remove();
};
}, []);
Несмотря на эту настройку, Android никогда не передает глубокую ссылку на React Native, а iOS работает отлично.


Подробнее здесь: https://stackoverflow.com/questions/798 ... act-native
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»