アプリアイコンとラベルの設定
アプリケーションのアイコンは、プロジェクト内の AppScope ディレクトリにある app.json5 ファイル内で icon プロパティを定義します。この値にはメディアリソースの参照(例: $media:app_icon)を指定します。
同様に、ユーザーに表示されるアプリ名(ラベル)は、同じファイル内の label プロパティで文字列リソースの参照(例: $string:app_name)を設定します。
{
"app": {
"icon": "$media:app_icon",
"label": "$string:app_name"
}
}
ランチャーアイコンとラベルの設定
Stageモデルでは、各UIAbilityに対してランチャーアイコンとラベルを個別に設定できます。これらの情報はデバイスのホーム画面に表示されます。
設定はモジュールの module.json5 ファイル内で行い、対象のAbilityの icon および label を指定します。さらに、ホーム画面に表示させるには、skills 内に以下のエントリを追加する必要があります:
entities:"entity.system.home"actions:"ohos.want.action.home"
{
"module": {
"abilities": [
{
"name": "EntryAbility",
"icon": "$media:entry_icon",
"label": "$string:entry_label",
"skills": [
{
"entities": ["entity.system.home"],
"actions": ["ohos.want.action.home"]
}
]
}
]
}
}
アイコン表示の制御ルール
OpenHarmonyでは、悪意あるアプリがアイコンを非表示にしてユーザーがアンインストールできない状況を防ぐため、アイコンなしアプリに対する制限を設けています。
アイコンを意図的に非表示にするには、AllowAppDesktopIconHide 特権を申請する必要があります。特権がない場合の挙動は以下の通りです:
- HAPにUIAbilityが含まれる場合
- Abilityに
iconが設定されていれば、それがランチャーアイコンとして使用される。 - Abilityに
labelが未設定の場合、app.json5のラベルが使用される。 - Abilityにアイコンが設定されていない場合、
app.json5のアイコンが使用され、起動時はアプリ情報ページが開く。
- Abilityに
- HAPにUIAbilityが含まれない場合
app.json5のアイコンとラベルがランチャーに表示され、起動時はアプリ情報ページへ遷移する。
特権を持つアプリは、ランチャー検索結果から除外され、アイコンおよびラベルは一切表示されません。
アプリバージョン情報の宣言
バージョン管理は app.json5 の versionCode(数値型、32ビット非負整数)と versionName(文字列)で行います。versionCode はアップデート判定にのみ使用され、大きいほど新しいバージョンとみなされます。
対応デバイスタイプの指定
モジュールが対応するデバイス種別(スマートフォン、タブレット、ウェアラブルなど)は、module.json5 の deviceTypes 配列で宣言します。
モジュールの権限要求
システムリソースや他のアプリの保護された機能にアクセスするには、module.json5 の requestPermissions セクションで必要な権限を明示的に宣言します。各権限には、使用目的と利用シーンの説明も含める必要があります。