アプリ全体を制御する関数やシステムオブジェクトを集めたオブジェクトです。
グローバルオブジェクト
モジュールパス: /alier_sys/_AlierCore.js
概要
Alier フレームワークではアプリケーション開始時に Alier
という名前のグローバル変数を作り、その配下に主要なオブジェクトを割り当てます。
それらのオブジェクトには Alier
のプロパティから参照でき、アプリケーション全体で利用できます。
関数
Alier.import()
- 指定のソースファイルをモジュールとしてインポートします。
Alier.export()
- 指定の機能をエクスポートします。
Alier.registerFunction()
- JavaScript の関数をネイティブ側のコードから実行できるようにします。
Alier.getEnv()
- Alier の環境変数を取得します。
Alier.setEnv()
- Alier の環境変数を設定します。
プロパティ
Alier.View
--- アプリケーション画面全体です。Alier.Model
--- アプリケーションのモデル層の機能のインターフェースです。Alier.Native
--- ネイティブ関数呼び出しのためのインタフェースを持つオブジェクトです。Alier.SysEvent
--- システム通知をキャッチするMessagePorter
オブジェクトです。
Alier.View
アプリケーション画面そのものです。
型
詳細
Alier.View
に ViewLogic
を attach()
することで ViewLogic
に関連付けられた表示要素を表示できます。
このプロパティはAlierFramework.js モジュールの初回インポートの時にグローバルオブジェクト Alier
に定義されます。
Alier.Model
アプリケーションのモデル層の機能のインタフェースです。
型
object
詳細
アプリケーション内に作成されたモデルクラスのインスタンスは Alier.Model
のプロパティとして参照されます。
このプロパティは setupModelInterface()
関数呼び出しによってグローバルオブジェクト Alier
に定義されます。
Alier.Native
ネイティブ関数呼び出しのためのインタフェースを持つオブジェクトです。
型
object
詳細
ネイティブコードで実装された関数を JavaScript 側から呼び出します。
ネイティブコード側から ScriptMediator::registerFunction()
を呼び出すことでこのオブジェクトに関数が追加され、JavaScript 側から実行できるようになります。
Alier
グローバルオブジェクトの初期化が完了した時点で以下の関数が Alier.Native
のメソッドとして登録されます:
Alier.Native.fetch()
Alier.Native.loadText()
Alier.Native.saveText()
Alier.Native
はネイティブアプリ版でのみ定義され、Web アプリ版では定義されません。
Alier.SysEvent
システム通知をキャッチする MessagePorter
オブジェクトです。
型
詳細
システムイベントではライフサイクルイベントが通知されます。
ライフサイクルイベントを受け取るためには、プラットフォームごとに事前準備が必要になる場合があります。
Android では特に必要ありません。
iOS アプリでライフサイクルイベントを受け取るためには @UIApplicationDelegateAdaptor
を用いて UIApplicationDelegate
か UIWindowSceneDelegate
クラスのインスタンスを生成する必要があります。基本的には App
protocol に準拠している構造体かクラスで生成します。
@UIApplicationDelegateAdaptor (LifeCycle_UIApplication.self) var anyName
addListener()
メソッドでコールバックを登録することでライフサイクルイベントを処理できます。引数 message
はプロパティ id
, code
, param
を持つオブジェクトです。
Alier.SysEvent.addListener((message) => {
if (message.id === "onLeaveForeground") {
console.log("App leave foreground!");
}
});
Alier で取得できるライフサイクルイベントとその名称の一覧です。
id | code | イベントのタイミング | 備考 |
"onCreate" | "0" | アプリケーションが起動され画面作成を行なった時 | JS に通知しない |
"onAwake" | "1" | 初回起動時の Main 生成後、外部アプリやシステム通知から起動された時 | JS に通知する |
"onLeaveForeground" | "2" | 画面がアクティブな状態から非アクティブな状態に移行する時 | JS に通知する |
"onEnterBackground" | "3" | 画面がフォアグランドからバックグランドに移行した時 | JS に通知する |
"onEnterForeground" | "4" | 画面作成後フォアグランドに移行した時 | バックグラウンドのアプリがフォアグラウンドに移行した時のみ JS に通知する |
"onActive" | "5" | 画面が非アクティブ状態からアクティブ状態に移行した時 | バックグラウンドのアプリがフォアグラウンドに移行した時のみ JS に通知する |
"onDestroy" | "6" | 画面が破棄される時 | JS に通知しない |
Alier.SysController
ハードウェアから送られる通知をキャッチする MessagePorter
オブジェクトです。
型
詳細
システムコントローライベントではハードウェアボタンの押下イベントが通知されます。
addListener()
メソッドでコールバックを登録することでライフサイクルイベントを処理できます。引数 message
はプロパティ id
, code
, param
を持つオブジェクトです。
Alier.SysController.addListener((message) => {
if (message.id === "onBackPressed") {
console.log("Back button pressed");
}
});
Alier で取得できるライフサイクルイベントとその名称の一覧です。
id | code | イベントのタイミング | 備考 |
"onBackPressed" | "0" | Androidのバックボタンが押された時 | JS に通知する |