@capacitor/app
App API は、高レベルのアプリの状態とイベントを処理します。たとえば、この API はアプリがフォアグラウンドに出入りするとき、ディープリンクを処理するとき、他のアプリを開くとき、および永続化されたプラグインの状態を管理するときにイベントを発行します。
インストール
npm install @capacitor/app
npx cap sync
iOS
カスタムスキームからアプリを開けるようにするには、最初にスキームを登録する必要があります。これは、Info.plist
ファイルを編集し、次の行を追加することで実行できます。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.getcapacitor.capacitor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>mycustomscheme</string>
</array>
</dict>
</array>
Android
カスタムスキームからアプリを開けるようにするには、最初にスキームを登録する必要があります。これは、AndroidManifest.xml
のactivity
セクション内に次の行を追加することで実行できます。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/custom_url_scheme" />
</intent-filter>
custom_url_scheme
の値は、strings.xml
に保存されます。Androidプラットフォームが追加されると、@capacitor/cli
はアプリのパッケージ名をデフォルト値として追加しますが、strings.xml
ファイルを編集することで置き換えることができます。
例
import { App } from '@capacitor/app';
App.addListener('appStateChange', ({ isActive }) => {
console.log('App state changed. Is active?', isActive);
});
App.addListener('appUrlOpen', data => {
console.log('App opened with URL:', data);
});
App.addListener('appRestoredResult', data => {
console.log('Restored state:', data);
});
const checkAppLaunchUrl = async () => {
const { url } = await App.getLaunchUrl();
console.log('App opened with URL: ' + url);
};
API
exitApp()
exitApp() => Promise<void>
アプリを強制的に終了させます。これは、ナビゲーションが完了したときにアプリを終了するために、AndroidのbackButton
ハンドラーと組み合わせてのみ使用する必要があります。
Ionic自体がこれを処理するため、Ionicを使用している場合はこれを呼び出す必要はありません。
Since 1.0.0
getInfo()
getInfo() => Promise<AppInfo>
アプリに関する情報を返します。
戻り値: Promise<AppInfo>
Since 1.0.0
getState()
getState() => Promise<AppState>
現在のアプリの状態を取得します。
戻り値: Promise<AppState>
Since 1.0.0
getLaunchUrl()
getLaunchUrl() => Promise<AppLaunchUrl | undefined>
アプリが起動されたときのURL(存在する場合)を取得します。
戻り値: Promise<AppLaunchUrl>
Since 1.0.0
minimizeApp()
minimizeApp() => Promise<void>
アプリケーションを最小化します。
Androidでのみ使用可能です。
Since 1.1.0
addListener('appStateChange', ...)
addListener(eventName: 'appStateChange', listenerFunc: StateChangeListener) => Promise<PluginListenerHandle>
アプリまたはアクティビティの状態の変化をリッスンします。
iOSでは、ネイティブのUIApplication.willResignActiveNotificationおよびUIApplication.didBecomeActiveNotificationイベントが発行されるときに発行されます。Androidでは、CapacitorのアクティビティonResumeおよびonStopメソッドが呼び出されたときに発行されます。Webでは、ドキュメントのvisibilitychangeが発行されたときに発行されます。
パラメータ | タイプ |
---|---|
eventName | 'appStateChange' |
listenerFunc | StateChangeListener |
戻り値: Promise<PluginListenerHandle>
Since 1.0.0
addListener('pause', ...)
addListener(eventName: 'pause', listenerFunc: () => void) => Promise<PluginListenerHandle>
アプリまたはアクティビティが一時停止したときにリッスンします。
iOSでは、ネイティブのUIApplication.didEnterBackgroundNotificationイベントが発行されるときに発行されます。Androidでは、CapacitorのアクティビティonPauseメソッドが呼び出されたときに発行されます。Webでは、ドキュメントのvisibilitychangeが発行され、document.hiddenがtrueのときに発行されます。
パラメータ | タイプ |
---|---|
eventName | 'pause' |
listenerFunc | () => void |
戻り値: Promise<PluginListenerHandle>
Since 4.1.0
addListener('resume', ...)
addListener(eventName: 'resume', listenerFunc: () => void) => Promise<PluginListenerHandle>
アプリまたはアクティビティが再開したときにリッスンします。
iOSでは、ネイティブのUIApplication.willEnterForegroundNotificationイベントが発行されるときに発行されます。Androidでは、CapacitorのアクティビティonResumeメソッドが呼び出されたときに発行されますが、再開が最初に発行された後のみです。Webでは、ドキュメントのvisibilitychangeが発行され、document.hiddenがfalseのときに発行されます。
パラメータ | タイプ |
---|---|
eventName | 'resume' |
listenerFunc | () => void |
戻り値: Promise<PluginListenerHandle>
Since 4.1.0
addListener('appUrlOpen', ...)
addListener(eventName: 'appUrlOpen', listenerFunc: URLOpenListener) => Promise<PluginListenerHandle>
アプリのURLオープンイベントをリッスンします。これは、カスタムURLスキームリンクと、アプリが処理するURL(iOSのユニバーサルリンク、Androidのアプリリンク)の両方を処理します。
パラメータ | タイプ |
---|---|
eventName | 'appUrlOpen' |
listenerFunc | URLOpenListener |
戻り値: Promise<PluginListenerHandle>
Since 1.0.0
addListener('appRestoredResult', ...)
addListener(eventName: 'appRestoredResult', listenerFunc: RestoredListener) => Promise<PluginListenerHandle>
アプリが以前に永続化されたプラグイン呼び出しデータ(Androidでアクティビティが閉じられたアプリに戻るときなど)で起動された場合、この呼び出しは、アプリが起動されたときに渡されたデータをプラグイン呼び出しの結果の形式に変換して返します。
Androidでは、ローエンドデバイスのメモリ制約により、アプリが新しいアクティビティを起動すると、メモリ消費を削減するためにオペレーティングシステムによってアプリが強制終了される可能性があります。
たとえば、これは、写真を撮るために新しいアクティビティを起動するカメラAPIが、アプリにデータを返すことができない可能性があることを意味します。
これを回避するために、Capacitorはすべての復元されたアクティビティの結果を起動時に保存します。アプリが実行されていないときに配信されたプラグイン呼び出しの結果を処理するために、appRestoredResult
のリスナーを追加する必要があります。
その結果(もしあれば)を取得したら、UIを更新して、ユーザーにとって論理的なエクスペリエンスを復元できます(ナビゲートや適切なタブの選択など)。
外部アクティビティ(たとえば、カメラ)に依存するプラグインを使用するすべてのAndroidアプリで、このイベントを処理することをお勧めします。
パラメータ | タイプ |
---|---|
eventName | 'appRestoredResult' |
listenerFunc | RestoredListener |
戻り値: Promise<PluginListenerHandle>
Since 1.0.0
addListener('backButton', ...)
addListener(eventName: 'backButton', listenerFunc: BackButtonListener) => Promise<PluginListenerHandle>
ハードウェアの戻るボタンイベント(Androidのみ)をリッスンします。このイベントをリッスンすると、デフォルトの戻るボタンの動作が無効になるため、window.history.back()
を手動で呼び出すことをお勧めします。アプリを閉じたい場合は、App.exitApp()
を呼び出します。
パラメータ | タイプ |
---|---|
eventName | 'backButton' |
listenerFunc | BackButtonListener |
戻り値: Promise<PluginListenerHandle>
Since 1.0.0
removeAllListeners()
removeAllListeners() => Promise<void>
このプラグインのすべてのネイティブリスナーを削除します
Since 1.0.0
インターフェース
AppInfo
プロパティ | タイプ | 説明 | Since |
---|---|---|---|
name | 文字列 | アプリの名前。 | 1.0.0 |
id | 文字列 | アプリの識別子。iOSではバンドル識別子。AndroidではアプリケーションID | 1.0.0 |
build | 文字列 | ビルドバージョン。iOSではCFBundleVersion。AndroidではversionCode。 | 1.0.0 |
version | 文字列 | アプリのバージョン。iOSではCFBundleShortVersionString。AndroidではパッケージのversionName。 | 1.0.0 |
AppState
プロパティ | タイプ | 説明 | Since |
---|---|---|---|
isActive | ブール値 | アプリがアクティブかどうか。 | 1.0.0 |
AppLaunchUrl
プロパティ | タイプ | 説明 | Since |
---|---|---|---|
url | 文字列 | アプリを開くために使用されたURL。 | 1.0.0 |
PluginListenerHandle
プロパティ | タイプ |
---|---|
remove | () => Promise<void> |
URLOpenListenerEvent
プロパティ | タイプ | 説明 | Since |
---|---|---|---|
url | 文字列 | アプリが起動されたURL。 | 1.0.0 |
iosSourceApplication | any | アプリを起動したソースアプリケーション(iOSのみ) https://developer.apple.com/documentation/uikit/uiapplicationopenurloptionskey/1623128-sourceapplication | 1.0.0 |
iosOpenInPlace | ブール値 | アプリが渡されたドキュメントをその場で開くか、最初にコピーする必要があるか。https://developer.apple.com/documentation/uikit/uiapplicationopenurloptionskey/1623123-openinplace | 1.0.0 |
RestoredListenerEvent
プロパティ | タイプ | 説明 | Since |
---|---|---|---|
pluginId | 文字列 | この結果が対応するpluginId。例えば、Camera 。 | 1.0.0 |
methodName | 文字列 | この結果が対応するmethodName。例えば、getPhoto | 1.0.0 |
data | any | プラグインから渡された結果データ。これは、通常プラグインメソッドを呼び出すと期待される結果になります。例えば、CameraPhoto | 1.0.0 |
success | ブール値 | プラグイン呼び出しが成功したかどうかを示すブール値。 | 1.0.0 |
error | { message: string; } | プラグイン呼び出しが成功しなかった場合、エラーメッセージが含まれます。 | 1.0.0 |
BackButtonListenerEvent
プロパティ | タイプ | 説明 | Since |
---|---|---|---|
canGoBack | ブール値 | ブラウザが履歴を戻れるかどうかを示します。履歴スタックが最初のエントリにある場合はFalse。 | 1.0.0 |
型エイリアス
StateChangeListener
(state: AppState): void
URLOpenListener
(event: URLOpenListenerEvent): void
RestoredListener
(event: RestoredListenerEvent): void
BackButtonListener
(event: BackButtonListenerEvent): void