Поведение закрепленного ярлыка MAUIC#

Место общения программистов C#
Ответить
Anonymous
 Поведение закрепленного ярлыка MAUI

Сообщение Anonymous »

В настоящее время я переношу приложение из Xamarin в MAUI и столкнулся с проблемой при попытке настроить закрепленный ярлык для вторичного действия на Android.

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

SecondaryActivity
отображает представление в PiP, уведомляет сервер о выполнении запроса и затем закрывается.
В Xamarin следующая конфигурация работает должным образом:

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

MainActivity

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

[Activity(Label = "MainActivity", Icon = "@mipmap/icon", RoundIcon = "@mipmap/icon_round", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize )]

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

SecondaryActivity

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

[Activity(Label = "SecondaryActivity", Exported = true, SupportsPictureInPicture = true), IntentFilter( new [] { Intent.ActionCreateShortcut }, Categories = new[] { Intent.CategoryLauncher } )]
Пользователь может создать ярлык для SecondaryActivity на устройстве (реализуется с помощью ShortcutManagerCompat.RequestPinShortcut) и запускать действие, не запуская все приложение, как и ожидалось.
При использовании той же конфигурации в MAUI я обнаружил несколько заметных отличий:
  • При запуске приложения вместо запуска MainActivity приложение запускало SecondaryActivity, полностью игнорируя MainLauncher = true. Я удалил категории = new[] { Intent.CategoryLauncher из SecondaryActivity, и приложение запустилось, как ожидалось.
  • При нажатии на ярлык, когда приложение находится в фоновом режиме, на долю секунды отображается стандартный экран-заставка приложения, указывающий на то, что приложение в некоторой степени открывается повторно, а затем запускается SecondaryActivity. p>
  • При нажатии на ярлык, когда приложение закрыто, появляется тот же экран-заставка по умолчанию, но теперь приложение вылетает.
    В stacktrace я вижу, что все приложение запускается со следующим:

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

    Microsoft.Maui.MauiApplication.OnCreate()
  • Код: Выделить всё

    ApplicationName.App..ctor()
  • Код: Выделить всё

    ApplicationName.Views.MainPage..ctor()
а затем происходит сбой при невозможности назначить свойство «TextColor»: свойство не существует, или его невозможно назначить, или несовпадение типа между значением и property


Я пробовал LaunchMode = LaunchMode.SingleTask, LaunchMode = LaunchMode.SingleInstance< /код>, нет изменить.
Я считаю, что категории = new[] { Intent.CategoryLauncher должны использоваться в SecondaryActivity, чтобы это указывало на то, что существует другой возможный вариант. лаунчер в приложение. Но даже при таком определении тот же сбой происходит при нажатии на ярлык.
Нужно ли мне обрабатывать намерение SHORTCUT в MainApplication или MauiProgram чтобы это работало?
Как правильно реализовать закрепленные ярлыки в MAUI?

Подробнее здесь: https://stackoverflow.com/questions/791 ... t-behavior
Ответить

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

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

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

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

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