Тост
Статья 05/17/2024
Участники: 6
Обратная связь
В этой статье
Toast
— это оповещение времени, которое отображается в нижней части экрана. Оно автоматически закрывается после настраиваемого периода времени.
Он предоставляет простой отзыв пользователю об операции в небольшом оповещении.
Для доступа к Toast
функциям требуется следующая настройка для конкретной платформы.
Никакой настройки для этого не требуется.
Никакой настройки для этого не требуется.
При использовании Snackbar
необходимо выполнить следующие два шага:
1. Включение использования закусочных с помощью MauiAppBuilder
При использовании UseMauiCommunityToolkit
options
параметра для включения использования закусочных панели в Windows следующим образом:
var builder = MauiApp.CreateBuilder()
.UseMauiCommunityToolkit(options =>
{
options.SetShouldEnableSnackbarOnWindows(true);
})
Приведенный выше параметр автоматически регистрирует необходимые обработчики путем настройки событий жизненного цикла (OnLaunched
и OnClosed
).
2. Включите регистрации ToastNotification в файл Package.appxmanifest
Чтобы обработать действия с перекуской, необходимо изменить Platform\Windows\Package.appxmanifest
файл следующим образом:
В package.appxmanifest в открываемом <Package>
теге добавьте следующие пространства имен XML:
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
В Package.appxmanifest также в открываемом <Package>
теге обновите, IgnorableNamespaces
чтобы включитьcom
uap
rescap
иdesktop
:
IgnorableNamespaces="uap rescap com desktop"
Пример: завершенный <Package>
тег
Ниже приведен пример завершенного открывающего <Package>
тега, который добавил поддержку для Snackbar
:
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap rescap com desktop">
В Package.appxmanifest внутри каждого <Application>
тега добавьте следующие расширения:
<Extensions>
<!-- Specify which CLSID to activate when notification is clicked -->
<desktop:Extension Category="windows.toastNotificationActivation">
<desktop:ToastNotificationActivation ToastActivatorCLSID="6e919706-2634-4d97-a93c-2213b2acc334" />
</desktop:Extension>
<!-- Register COM CLSID -->
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="YOUR-PATH-TO-EXECUTABLE" DisplayName="$targetnametoken$" Arguments="----AppNotificationActivated:"> <!-- Example path to executable: CommunityToolkit.Maui.Sample\CommunityToolkit.Maui.Sample.exe -->
<com:Class Id="6e919706-2634-4d97-a93c-2213b2acc334" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
Пример: завершенный <Applications>
тег
Ниже приведен пример завершенного <Applications>
тега, который теперь добавил поддержку для Snackbar
:
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="$placeholder$"
Description="$placeholder$"
Square150x150Logo="$placeholder$.png"
Square44x44Logo="$placeholder$.png"
BackgroundColor="transparent">
<uap:DefaultTile Square71x71Logo="$placeholder$.png" Wide310x150Logo="$placeholder$.png" Square310x310Logo="$placeholder$.png" />
<uap:SplashScreen Image="$placeholder$.png" />
</uap:VisualElements>
<Extensions>
<desktop:Extension Category="windows.toastNotificationActivation">
<desktop:ToastNotificationActivation ToastActivatorCLSID="6e919706-2634-4d97-a93c-2213b2acc334" />
</desktop:Extension>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="YOUR-PATH-TO-EXECUTABLE" DisplayName="$targetnametoken$" Arguments="----AppNotificationActivated:"> <!-- Example path to executable: CommunityToolkit.Maui.Sample\CommunityToolkit.Maui.Sample.exe -->
<com:Class Id="6e919706-2634-4d97-a93c-2213b2acc334" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
</Application>
</Applications>
Пример: обновленный Package.appxmanifest
файл для поддержки Snackbar
Ниже приведен пример Package.appxmanifest
файла, который был обновлен для поддержки Snackbar
в Windows:
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap rescap com desktop">
<Identity Name="maui-package-name-placeholder" Publisher="CN=Microsoft" Version="0.0.0.0" />
<Properties>
<DisplayName>$placeholder$</DisplayName>
<PublisherDisplayName>Microsoft</PublisherDisplayName>
<Logo>$placeholder$.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="$placeholder$"
Description="$placeholder$"
Square150x150Logo="$placeholder$.png"
Square44x44Logo="$placeholder$.png"
BackgroundColor="transparent">
<uap:DefaultTile Square71x71Logo="$placeholder$.png" Wide310x150Logo="$placeholder$.png" Square310x310Logo="$placeholder$.png" />
<uap:SplashScreen Image="$placeholder$.png" />
</uap:VisualElements>
<Extensions>
<desktop:Extension Category="windows.toastNotificationActivation">
<desktop:ToastNotificationActivation ToastActivatorCLSID="6e919706-2634-4d97-a93c-2213b2acc334" />
</desktop:Extension>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="YOUR-PATH-TO-EXECUTABLE" DisplayName="$targetnametoken$" Arguments="----AppNotificationActivated:"> <!-- Example path to executable: CommunityToolkit.Maui.Sample\CommunityToolkit.Maui.Sample.exe -->
<com:Class Id="6e919706-2634-4d97-a93c-2213b2acc334" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
</Package>
Дополнительные сведения об обработке активации: отправка локального всплывающего уведомления из приложений C#
Никакой настройки для этого не требуется.
Синтаксис
C#
Чтобы отобразить Toast
его, сначала создайте его с помощью статического метода Toast.Make()
, а затем отобразите его с помощью метода Show()
.
using CommunityToolkit.Maui.Alerts;
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
string text = "This is a Toast";
ToastDuration duration = ToastDuration.Short;
double fontSize = 14;
var toast = Toast.Make(text, duration, fontSize);
await toast.Show(cancellationTokenSource.Token);
При вызове Toast.Make()
его параметр string text
является обязательным. Все остальные параметры являются необязательными. Его необязательный параметр ToastDuration duration
использует длительность ToastDuration.Short
по умолчанию. Его необязательный параметр double fontSize
использует значение 14.0
по умолчанию.
На следующем снимка экрана показан полученный toast:
Свойства
Свойство
Type
Описание
Default value
Текст
string
Текст, отображаемый в элементе Toast
.
Обязательный
Длительность
ToastDuration
Отображается длительность Toast
.
ToastDuration.Short
Textsize
double
Размер шрифта текста.
14.0
ToastDuration
Перечисление ToastDuration
определяет следующие члены:
Short
— отображение Toast
в течение 2 секунд
Long
— отображение Toast
в течение 3,5 секунд
Эти значения соответствуют константам, определенным в android.widget.Toast
API .
Методы
Метод
Description
Отображение
Отображение запрошенного Toast
. Toast
Если в данный момент отображается объект, он будет автоматически отклонен до отображения запрошенного Toast
объекта.
Закрыть
Закройте текущее всплывающее уведомление.
Примечание.
Вы можете отображать только один Toast
раз. При вызове Show
метода во второй раз первая Toast
будет автоматически закрыта.
Примеры
Пример этой функции можно найти в действии в сообществе .NET MAUI набор средств пример приложения .
API
Исходный код Toast
можно найти в репозитории сообщества .NET MAUI набор средств GitHub.
API позволяет переопределить существующие методы с помощью собственной реализации или создания собственного toast, реализуя IToast
интерфейс.
Toast реализован на Android, созданном Google. Другие платформы используют настраиваемый контейнер (UIView
для iOS и MacCatalyst в ToastNotification
Windows).
Toast on Tizen не может быть настроен с его Duration
свойствами и TextSize
свойствами.