@capacitor/preferences
Preferences API は、軽量データ用のシンプルなキー/値永続ストアを提供します。
モバイル OS は window.localStorage
で設定されたデータを定期的に消去する可能性があるため、代わりにこの API を使用する必要があります。この API は、プログレッシブ Web アプリとして実行しているときは localStorage
の使用にフォールバックします。
このプラグインは、iOS では UserDefaults
を、Android では SharedPreferences
を使用します。保存データは、アプリがアンインストールされると消去されます。
注意: この API は、ローカルデータベースとして使用すべきものではありません。お使いのアプリが大量のデータを保存していて、読み取り/書き込みの負荷が高いか、複雑なクエリが必要な場合は、SQLite ベースのソリューションを試用することをお勧めします。そのようなソリューションの 1 つは、フル暗号化をサポートする SQLite ベースのエンジンである Ionic Secure Storage です。 Capacitor コミュニティも、他の複数のストレージエンジンを構築しています。
インストール
npm install @capacitor/preferences
npx cap sync
Apple プライバシーマニフェストの要件
Apple は、ユーザーのプライバシーを強化するために、アプリ開発者が API 使用の承認された理由を示すことを義務付けています。2024 年 5 月 1 日までに、App Store Connect にアプリを送信する際にこれらの理由を含める必要があります。
この特定のプラグインをアプリで使用する場合、/ios/App
にPrivacyInfo.xcprivacy
ファイルを作成するか、VSコード拡張機能を使用して使用理由を指定して生成する必要があります。
これを行う方法の詳細な手順については、Capacitor Docsを参照してください。
このプラグインでは、必要なディクショナリのキーはNSPrivacyAccessedAPICategoryUserDefaultsで、推奨される理由はCA92.1です。
Example PrivacyInfo.xcprivacy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>
Example Plugin Usage
import { Preferences } from '@capacitor/preferences';
const setName = async () => {
await Preferences.set({
key: 'name',
value: 'Max',
});
};
const checkName = async () => {
const { value } = await Preferences.get({ key: 'name' });
console.log(`Hello ${value}!`);
};
const removeName = async () => {
await Preferences.remove({ key: 'name' });
};
Working with JSON
Preferences APIは文字列の値のみをサポートしています。ただし、set()
を呼び出す前にJSON.stringify
を使用してオブジェクトを処理し、get()
から返される値をJSON.parse
する場合、JSONを使用できます。
このメソッドは、数値やブール値など、文字列以外の値を格納するためにも使用できます。
API
configure(...)
configure(options: ConfigureOptions) => Promise<void>
実行時に環境設定プラグインを構成します。
undefined
のオプションは使用されません。
パラメータ | タイプ |
---|---|
options | ConfigureOptions |
以降 1.0.0
get(...)
get(options: GetOptions) => Promise<GetResult>
指定されたキーの環境設定から値を取得します。
パラメータ | タイプ |
---|---|
options | GetOptions |
返される値: Promise<GetResult>
以降 1.0.0
set(...)
set(options: SetOptions) => Promise<void>
指定されたキーの環境設定に値を設定します。
パラメータ | タイプ |
---|---|
options | SetOptions |
以降 1.0.0
remove(...)
remove(options: RemoveOptions) => Promise<void>
指定されたキーの環境設定から値がある場合は、環境設定からその値を削除します。
パラメータ | タイプ |
---|---|
options | RemoveOptions |
以降 1.0.0
clear()
clear() => Promise<void>
環境設定からキーと値を消去します。
以降 1.0.0
keys()
keys() => Promise<KeysResult>
環境設定で既知のキーのリストを返します。
返される値: Promise<KeysResult>
以降 1.0.0
migrate()
migrate() => Promise<MigrateResult>
Capacitor 2ストレージプラグインからデータを移行します。
このアクションは破壊的ではありません。古いデータは削除されず、キーが既に設定されていない場合にのみ新しいデータが書き込まれます。移行後に古いデータを削除するには、removeOld()を呼び出します。
返される値: Promise<MigrateResult>
以降 1.0.0
removeOld()
removeOld() => Promise<void>
Capacitor 2ストレージプラグインから_cap_
プレフィックスのある古いデータを削除します。
以降 1.1.0
インターフェイス
ConfigureOptions
プロパティ | タイプ | 説明 | デフォルト | 以降 |
---|---|---|---|---|
group | string | 設定グループを設定します。設定のグループはキー/値ペアの編成に使用されます。 'NativeStorage' の値を使用すると、cordova-plugin-nativestorage との下位互換性が提供されます。警告: 'NativeStorage' グループを使用すると、clear() メソッドによって意図しない値が削除される可能性があります。 | CapacitorStorage | 1.0.0 |
GetResult
プロパティ | タイプ | 説明 | 以降 |
---|---|---|---|
value | string | null | 指定されたキーに関連付けられた設定からの値。以前値が設定されていなかったか削除された場合、値は null になります。 | 1.0.0 |
GetOptions
プロパティ | タイプ | 説明 | 以降 |
---|---|---|---|
key | string | 設定から取得する値のキーです。 | 1.0.0 |
SetOptions
プロパティ | タイプ | 説明 | 以降 |
---|---|---|---|
key | string | 設定で設定する値に関連付けるキーです。 | 1.0.0 |
value | string | 関連付けられたキーで設定に設定する値です。 | 1.0.0 |
RemoveOptions
プロパティ | タイプ | 説明 | 以降 |
---|---|---|---|
key | string | 設定から値を削除するキーです。 | 1.0.0 |
KeysResult
プロパティ | タイプ | 説明 | 以降 |
---|---|---|---|
keys | string[] | 設定内の既知のキーです。 | 1.0.0 |
MigrateResult
プロパティ | タイプ | 説明 | 以降 |
---|---|---|---|
migrated | string[] | 移行されたキーの配列です。 | 1.0.0 |
existing | string[] | Capacitor 2 Preferences プラグインに値を持つ、すでに移行されているか、それ以外の方法で設定に存在するキーの配列です。 | 1.0.0 |