# Как реализовать общую систему перенаправления в JetPack Compose Navigation, которая захватывает и выполняет действия VAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 # Как реализовать общую систему перенаправления в JetPack Compose Navigation, которая захватывает и выполняет действия V

Сообщение Anonymous »

Проблема < /h2>
Я строю приложение для Android, используя JetPack Compose с архитектурой MVI. Мне нужно внедрить систему перенаправления, в которой, если пользователь пытается выполнить защищенное действие (например, влюблен в сообщение) во время отсутствия входа в систему, приложение должно:

[*] захватить пункт назначения, которое они пытались достичь
[*] Захватить конкретное действие, которое они пытались выполнить
redire. /> После успешной аутентификации автоматически перейти обратно в исходный пункт назначения < /li>
Автоматически выполнять захваченное действие < /li>
< /ol>
Текущая архитектура < /h2>
Я использую базовый mvi viewmodel: < /p>
STATE) {
_state.update { it.reducer() }
}

protected fun intent(transform: suspend () -> Unit): Job {
return viewModelScope.launch { transform() }
}

suspend fun postSideEffect(sideEffect: SIDE_EFFECT) {
_sideEffect.send(sideEffect)
}

abstract fun sendAction(action: ACTION)
}
Example Use Case
User flow I want to support:

User (not logged in) clicks "like" on a post in the feed
App captures: Destination.Feed + FeedAction.LikePost(postId = "123")
User is redirected to onboarding/login screen
User completes login
App automatically navigates back to Feed screen
The FeedAction.LikePost(postId = "123") executes automatically
Post is liked

What I've Tried

Questions

What's the best architectural pattern for this in Jetpack Compose?
How can I capture and restore type-safe ViewModel actions across navigation?
Should this be handled at the navigation level, ViewModel level, or both?
How do I ensure the redirect is cleared after execution to avoid re-executing actions?

Requirements

Must work with Jetpack Compose Navigation (type-safe navigation)
Must integrate with existing MVI pattern
Should be reusable across different screens and ViewModels
Should be type-safe (no string-based serialization if possible)
Should handle both onboarding and login flows

Any architectural guidance or code examples would be greatly appreciated!
Environment

Jetpack Compose: 1.6.x
Navigation Compose: 2.8.x
Kotlin: 1.9.x


Подробнее здесь: https://stackoverflow.com/questions/797 ... ation-that
Ответить

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

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

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

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

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