App は最上位レベルのアプリケーションを表し、すべてのページとグローバルデータを管理し、ライフサイクルメソッドを提供します。 また、App インスタンスを生成するコンストラクターでもあります。 ミニプログラムは App インスタンスです。
概要
各ミニプログラムの最上位レベルには、通常、次の 3 つのファイルが含まれています。
app.acss: アプリケーションスタイル (オプション)app.js: アプリケーションロジックapp.json: アプリケーション構成
以下は、シンプルな app.json の例です。
{
"pages": [
"pages/index/index",
"pages/logs/index"
],
"window": {
"defaultTitle": "Demo"
}
}上記の構成では、ミニプログラムには 2 つのページが含まれており、アプリケーションウィンドウのデフォルトタイトルは Demo です。
App は 4 つのイベントを提供し、フックメソッドを設定できます。
onLaunch: ミニプログラムの起動onShow: ミニプログラムがフォアグラウンドに切り替わるonHide: ミニプログラムがバックグラウンドに切り替わるonError: ミニプログラムエラー
app.js のコードサンプルは次のとおりです。
App({
onLaunch(options) {
// ミニプログラムの初期化
},
onShow(options) {
// ミニプログラムの表示
},
onHide() {
// ミニプログラムの非表示
},
onError(msg) {
console.log(msg)
},
globalData: {
foo: true,
}
})App()
App() は、object をパラメーターとして受け取り、ミニプログラムのライフサイクルとその他の情報を構成します。
パラメーターの説明:
プロパティ | タイプ | 説明 | トリガー条件 |
onLaunch | 関数 | ミニプログラムの初期化を監視する | ミニプログラムの初期化が完了したときにトリガーされる (グローバルに 1 回だけトリガーされる) |
onShow | 関数 | ミニプログラムの表示を監視する | ミニプログラムが起動したとき、またはバックグラウンドからフォアグラウンドに切り替わったときにトリガーされる |
onHide | 関数 | ミニプログラムの非表示を監視する | ミニプログラムがフォアグラウンドからバックグラウンドに切り替わったときにトリガーされる |
onError | 関数 | ミニプログラムのエラーを監視する | ミニプログラムで JS エラーが発生したときにトリガーされる |
フォアグラウンドとバックグラウンドの定義: 左上隅の閉じるボタンをクリックするか、ホームボタンを押して mPaaS クライアントを終了すると、ミニプログラムは直接破棄されずにバックグラウンドに入ります。 mPaaS クライアントに再度入るか、ミニプログラムを再度開くと、バックグラウンドからフォアグラウンドに戻ります。
ミニプログラムが一定時間バックグラウンドに入った場合、またはシステムリソースの使用率が高すぎる場合にのみ、実際に破棄されます。
onLaunch/onShow メソッドのパラメーター
プロパティ | タイプ | 説明 |
query | オブジェクト | 現在のミニプログラムのクエリ |
path | 文字列 | 現在のミニプログラムのページアドレス |
ネイティブ起動のパラメーター渡し方法は次のとおりです。

URL 起動のパラメーター渡し方法は次のとおりです。
queryは起動パラメーターのqueryフィールドから解析され、pathは起動パラメーターのpageフィールドから解析されます。たとえば、次の URL の場合:alipays://platformapi/startapp?appId=1999&query=number%3D1&page=x%2Fy%2Fzqueryパラメーターは次のように解析されます。number%3D1 === encodeURIComponent('number=1')pathパラメーターは次のように解析されます。x%2Fy%2Fz === encodeURIComponent('x/y/z')
page が省略されている場合、デフォルトでホームページになります
そのため、ミニプログラムを初めて起動するときに、このパラメーターは onLaunch メソッドから取得できます。または、スキーマを使用してバックグラウンドからミニプログラムを再度開いたときに、このパラメーターを onShow メソッドから取得することもできます。
App({
onLaunch(options) {
// 初回起動時
// options.query == {number:1}
},
onShow(options) {
// スキーマによってバックグラウンドから再起動された場合
// options.query == {number:1}
},
})getApp()
ミニプログラムインスタンスを取得するためのグローバル関数 getApp() を提供しています。これは通常、各サブページで最上位アプリケーションを取得するために使用されます。
var app = getApp()
console.log(app.globalData) // globalData を取得するApp()はapp.jsで呼び出す必要があり、複数回呼び出すことはできません。App()で定義された関数内でgetApp()を呼び出さないでください。thisを使用してappインスタンスを取得できます。この時点では
pageが生成されていないため、onLaunchで呼び出さないでください。getApp()でインスタンスを取得した後、ライフサイクル関数を非公開で呼び出さないでください。
グローバルデータは App() で設定でき、各サブページはグローバル関数 getApp() を介してグローバルアプリケーションインスタンスを取得できます。次に例を示します。
// app.js
App({
globalData: 1
})// a.js
// localValue は a.js でのみ有効
var localValue = 'a'
// app インスタンスを生成する
var app = getApp()
// グローバルデータを取得して変更する
app.globalData++// b.js
// localValue は b.js でのみ有効
var localValue = 'b'
// a.js が最初に実行された場合、globalData は 2 を返す
console.log(getApp().globalData)上記のコードでは、a.js と b.js は両方とも変数 localValue を宣言していますが、各スクリプトで宣言された変数と関数はそのファイル内でのみ有効であるため、互いに影響を与えません。
app.json
app.json はグローバル構成に使用され、ページファイルとウィンドウ表示のパスを決定し、ネットワークタイムアウト、複数のタブなどを設定します。
以下は、いくつかの構成項目を含むシンプルな app.json です。
{
"pages": [
"pages/index/index",
"pages/logs/index"
],
"window": {
"defaultTitle": "Demo"
}
}app.json の構成は次のとおりです。
ファイル | タイプ | 必須 | 説明 |
pages | 文字列配列 | はい | ページパスを設定する |
window | オブジェクト | いいえ | デフォルトページのウィンドウ表示を設定する |
tabBar | オブジェクト | いいえ | 下部タブの表示を設定する |
pages
pages プロパティは配列で、各項目はミニプログラムのページを指定する文字列です。各項目は、対応するページのパス情報を表します。配列の最初の項目は、ミニプログラムのホームページを表します。ミニプログラムのページを追加または削除するには、pages 配列を変更する必要があります。
ページパスには js サフィックスは必要ありません。フレームワークは、同じ名前の .json、.js、.axml、.acss ファイルを自動的にロードします。
たとえば、開発ディレクトリが次のようになっている場合:
pages/
pages/index/index.axml
pages/index/index.js
pages/index/index.acss
pages/logs/logs.axml
pages/logs/logs.js
app.js
app.json
app.acssapp.json は次のようにコーディングする必要があります。
{
"pages":[
"pages/index/index",
"pages/logs/logs"
]
}window
window は、ミニプログラムの共通ステータスバー、ナビゲーションバー、タイトル、ウィンドウの背景色を設定するために使用されます。
そのサブ属性には、titleBarColor、defaultTitle、pullRefresh、allowsBounceVertical が含まれます。
ファイル | タイプ | 必須 | 説明 |
titleBarColor | 10 進数 | いいえ | ナビゲーションバーの背景色 |
defaultTitle | 文字列 | いいえ | ページタイトル |
pullRefresh | ブール値 | いいえ | プルダウンリフレッシュを許可するかどうか。デフォルトは false です。 |
allowsBounceVertical | 文字列 (YES/NO) | いいえ | ページが実際のコンテンツを超える垂直方向のドラッグアンドドロップをサポートするかどうか。デフォルトは YES です |
次に例を示します。
{
"window":{
"defaultTitle": "Alipay インターフェース機能デモ"
}
}tabBar
ミニプログラムがマルチタブアプリケーション (ウィンドウの下部に複数のタブがあり、ページを切り替えることができる) の場合、tabBar を使用して、タブバーの表示とタブをタップしたときに表示されるページを設定できます。
ページジャンプ(
my.navigateTo)またはページリダイレクト(my.redirectTo)で到達したページは、tabBar 構成で定義されたページであっても、下部のタブバーを表示しません。tabBarの最初のページは、ホームページである必要があります。
tabBar 構成:
ファイル | 種類 | 必須 | 説明 |
textColor | HexColor | いいえ | テキストの色 |
selectedColor | HexColor | いいえ | 選択されたテキストの色 |
backgroundColor | HexColor | いいえ | 背景色 |
items | Array | はい | 各タブの構成 |
各項目の設定:
ファイル | 種類 | 必須 | 説明 |
pagePath | String | はい | ページパスを設定します |
name | String | はい | 名前 |
icon | String | いいえ | 通常アイコンのパス |
activeIcon | String | いいえ | ハイライト アイコンのパス |
推奨されるアイコンサイズは 60*60 px です。インポートされたイメージはすべて、非比例的に拡大/縮小されます。
例:
{
"tabBar": {
"textColor": "#dddddd",
"selectedColor": "#49a9ee",
"backgroundColor": "#ffffff",
"items": [
{
"pagePath": "pages/index/index",
"name": "ホームページ"
},
{
"pagePath": "pages/logs/logs",
"name": "ログ"
}
]
}
}スタートアップ パラメーター
ネイティブ コードからミニプログラムを開くときに、page パラメーターと query パラメーターを指定できます。Page は特定のページを開くパスを指定するために使用され、query はパラメーターを渡すために使用されます。
iOS コードサンプル
NSDictionary *param = @{@"page":@"pages/card/index", @"query":@"own=1&sign=1&code=2452473"}; MPNebulaAdapterInterface startTinyAppWithId:@"1234567891234568" params:param];Android コードサンプル
Bundle param = new Bundle(); param.putString("page", "pages/card/index"); param.putString("query", "own=1&sign=1&code=2452473"); MPNebula.startApp("1234567891234568",param);