Диплинки во Flutter при закрытии приложения открывают другой экземпляр на AndroidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Диплинки во Flutter при закрытии приложения открывают другой экземпляр на Android

Сообщение Anonymous »

Я работаю над проектом Flutter и сейчас настраиваю его для работы с глубокими ссылками. Мне удалось заставить глубокие ссылки работать правильно на iOS, но на Android я уже на полпути. Я могу без проблем выполнить глубокую ссылку на любой экран приложения, если приложение открыто или находится в фоновом режиме. Однако, если приложение закрыто и я пытаюсь выполнить глубокую ссылку на любой экран, приложение ведет себя в очень странном состоянии. Сначала приложение открывается в состоянии выхода из системы (даже если я вошел в систему), и приложение перестает отвечать на запросы и не может выполнять какие-либо сетевые запросы.
Я попробовал поискать в Интернете, чтобы найти решение, но пока ничего не решает проблему. Вот некоторые решения, с которыми я столкнулся, но не помогли:
  • Изменение режима запуска в AndroidManifest.xml на SingleTask >:
[*]Переопределение метода onNewIntent() в MainActivity.kt:
< /ол>

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

class MainActivity : FlutterActivity() {

private val CHANNEL = "app.channel.shared.data"

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

handleIntent(intent)
}

override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
}

override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
handleIntent(intent)
}

private fun handleIntent(intent: Intent) {
if (Intent.ACTION_VIEW == intent.action &&  intent.data != null) {
val data: Uri? = intent.data

// Revised intent flags
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)

// Process the deep link and send it to Flutter
if (data != null) {
handleDeepLink(data)
}
}
}

private fun handleDeepLink(data: Uri) {
flutterEngine?.let {
MethodChannel(it.dartExecutor.binaryMessenger, CHANNEL).invokeMethod("deeplink", data.toString())
} ?: run {
// Handle the case where the FlutterEngine is not initialized
}
}
}

К сожалению, ни одно из вышеперечисленных решений мне не помогло. Если у вас есть идеи, как решить эту проблему, дайте мне знать.


Подробнее здесь: https://stackoverflow.com/questions/788 ... on-android
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Диплинки Android и их открытие из браузеров
    Anonymous » » в форуме Android
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Диплинки Android и их открытие из браузеров
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Глубокие ссылки не открывают мое приложение из приложения Meta Messenger
    Anonymous » » в форуме IOS
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Ссылки на приложения .NET MAUI не открывают приложение, вместо этого открывается браузер
    Anonymous » » в форуме Android
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Ссылки на приложения .NET MAUI не открывают приложение, вместо этого открывается браузер
    Anonymous » » в форуме IOS
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

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