トースト
[アーティクル] 05/21/2024
6 人の共同作成者
フィードバック
この記事の内容
Toast
は、画面の下部に表示される、指定時刻に作動するアラートです。 設定した時間が経過すると、自動的に閉じられます。
小さなアラート内で操作に関する簡単なフィードバックをユーザーに提供します。
Toast
機能にアクセスするには、次のプラットフォーム固有の設定が必要です。
Snackbar
を使用する場合は、次の 2 つのステップを実行する必要があります。
1.MauiAppBuilder でスナックバーの使用を有効にする
UseMauiCommunityToolkit
を使用する場合は、options
パラメータを使用して、Windows でのスナックバーの使用を次のように有効にします。
var builder = MauiApp.CreateBuilder()
.UseMauiCommunityToolkit(options =>
{
options.SetShouldEnableSnackbarOnWindows(true);
})
上記では、ライフサイクル イベント (OnLaunched
と OnClosed
) を構成することで、必要なハンドラーが自動的に登録されます。
2.Package.appxmanifest ファイルに ToastNotification 登録を含める
スナックバー アクションを処理するには、次のように 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>
タグで、さらに uap
rescap
com
と desktop
を含むように IgnorableNamespaces
を更新します。
IgnorableNamespaces="uap rescap com desktop"
例: 完成した <Package>
タグ
Snackbar
のサポートが追加された、完成した開始 <Package>
タグの例を次に示します。
<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>
タグ
Snackbar
のサポートが追加された、完成した <Applications>
タグの例を次に示します。
<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>
例: Snackbar
をサポートするように更新された Package.appxmanifest
ファイル
Windows で Snackbar
をサポートするように更新された Package.appxmanifest
ファイルの例を次に示します。
<?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
が使用されます。
次のスクリーンショットは、結果のトーストを示しています。
Properties
プロパティ
タイプ
説明
規定値
Text
string
Toast
に表示されるテキスト。
必須
Duration
ToastDuration
Toast
が表示される期間。
ToastDuration.Short
TextSize
double
テキストのフォント サイズ
14.0
ToastDuration
ToastDuration
列挙型には、次のメンバーが定義されています。
Short
- 2 秒間 Toast
を表示する
Long
- 3.5 秒間 Toast
を表示する
これらの値は、android.widget.Toast
API で定義された定数に従います。
メソッド
メソッド
説明
表示
要求された Toast
を表示します。 Toast
が現在表示されている場合、要求された Toast
が表示される前に自動的に閉じられます。
無視
現在のトーストを閉じます。
Note
一度に表示できる Toast
は 1 つだけです。 2 回目の Show
メソッドを呼び出すと、最初の Toast
は自動的に閉じられます。
例
この機能の動作状態の例は、.「NET MAUI Community Toolkit サンプル アプリケーション 」でご覧になれます。
API
Toast
のソース コードは、.NET MAUI Community Toolkit の GitHub リポジトリ にあります。
API では、IToast
インターフェイスを実装することで、既存のメソッドを独自の実装でオーバーライドしたり、独自のトーストを作成したりできます。
トーストは、Google によって作成された Android に実装されています。 他のプラットフォームでは、カスタム実装コンテナー (iOS および MacCatalyst の場合は UIView
、Windows の場合は ToastNotification
) を使用します。
Tizen のトーストは、Duration
および TextSize
プロパティを使用してカスタマイズできません。