HarmonyOSアプリ開発におけるコンポーネント単位の設定方法

アプリアイコンとラベルの設定

アプリケーションのアイコンは、プロジェクト内の 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 のアイコンが使用され、起動時はアプリ情報ページが開く。
  • HAPにUIAbilityが含まれない場合
    • app.json5 のアイコンとラベルがランチャーに表示され、起動時はアプリ情報ページへ遷移する。

特権を持つアプリは、ランチャー検索結果から除外され、アイコンおよびラベルは一切表示されません。

アプリバージョン情報の宣言

バージョン管理は app.json5versionCode(数値型、32ビット非負整数)と versionName(文字列)で行います。versionCode はアップデート判定にのみ使用され、大きいほど新しいバージョンとみなされます。

対応デバイスタイプの指定

モジュールが対応するデバイス種別(スマートフォン、タブレット、ウェアラブルなど)は、module.json5deviceTypes 配列で宣言します。

モジュールの権限要求

システムリソースや他のアプリの保護された機能にアクセスするには、module.json5requestPermissions セクションで必要な権限を明示的に宣言します。各権限には、使用目的と利用シーンの説明も含める必要があります。

タグ: HarmonyOS ArkTS module.json5 app.json5 UIAbility

7月21日 21:32 投稿