MAUIでインストール時に1回だけ表示する画面を作る方法
背景
アプリの使い方など、アプリを初めて起動したときに1回だけ表示する機能を作りたい!
という事で、初回起動時に1回だけ表示させるための方法について調べました。
結論
「Microsoft.Maui.Storage」にあるPreferencesを使うことで、アプリを初めて起動したときに1回だけ表示する機能の作成ができそうでした。
なお、Preferencesの意味は、「環境設定」という意味で、アプリの基本設定をKey/Valueストアに保存するためのクラスのようです。
Preferencesの使い方
using Microsoft.Maui.Storage; public class PreferencesUtil { public static void Set() { // Setの第1引数は、基本設定を保存するためのキー名称であり、値を取り出す際に使用する // Setの第2引数は、基本設定として保存する値 // 下記処理では、testKeyというキー名称で、bool値"false"を保存している Preferences.Default.Set("isFirstOpen", false); } public static bool Get(string keyName) { // Getの第1引数は、基本設定に保存されているキー名称を指定する(この情報をもとにキーに紐づく値を取得する) // Getの第2引数はデフォルト値であり、第1引数に指定したキーが見つからなかった場合にreturnされる値となる // 下記処理では、アプリの基本設定に保存されている情報から、引数の"keyName"と一致するキーに紐づく値を取得しようとしている // また、引数で指定したキーが見つからなかった場合は、"true"を返すようになっている return Preferences.Default.Get<bool>(keyName, true); } }
初回起動時に1回だけ表示させるために
上記の[Preferencesの使い方]で記載したPreferencesUtilクラスのGetメソッドの引数に"isFirstOpen"を指定して呼び出し、戻り値がtrueの場合に初回起動時にのみ行いたい処理を実行します。
そして、初回起動時に1回だけ実行したい処理が完了した後で、PreferencesUtilクラスのSetメソッドを実行します。
これにより、アプリの基本設定のisFirstOpenがfalseとなるため、2回目以降の起動でPreferencesUtilクラスのGetメソッドの引数に"isFirstOpen"を指定して呼び出すと、戻り値がfalseとなり、2回目以降は初回起動時にのみ行いたい処理が実行されなくなります。
イメージ
public partial class MainPage : ContentPage { protected override void OnAppearing() { base.OnAppearing(); // アプリの基本設定から"isFirstOpen"に保存されている値を取得する var isFirstLoading = PreferencesUtil.Get("isFirstOpen"); if(isFirstLoading) { // 初回起動時にのみ実行したい処理 // 初回起動時にのみ実行したい処理完了後に"isFirstOpen"に保存されている値をfalseに更新する // これにより、次回起動時以降はこのif分の中の処理が実行されなくなる PreferencesUtil.Set(); } } }