📝

HarmonyOS運動開発:便利な静的クイックメニューの作成

に公開

鴻蒙核心技术##運動開発#

前言

運動系アプリでは、ユーザーは成績を確認したり、レース情報を見たり、運動を開始するなど、よく使う機能に素早くアクセスする必要があります。ユーザー体験を向上させるため、鴻蒙(HarmonyOS)では、デスクトップからアプリの特定ページに直接ジャンプできる静的クイックメニュー機能を提供しています。この記事では、鴻蒙開発の実践経験を基に、静的クイックメニューを開発し、ページを素早くジャンプする機能を実現する方法を詳しく解析します。

Image description

上記の画像のリンクは、ネットワークの問題のために解析に失敗しました。この問題は、リンク自体の合法性やネットワーク状況に関連する可能性があります。ウェブページのリンクが正しいことを確認し、適宜再度お試しください。

一、静的クイックメニューが必要な理由

静的クイックメニューは、ユーザーがアプリの特定機能に素早くアクセスできる方法を提供し、アプリを開いてから何度もクリックする必要がありません。これは運動系アプリにとって特に重要です。なぜなら、ユーザーは運動前に運動モードを素早く起動するか、運動データを見る必要がある場合があるからです。静的クイックメニューを使用することで、ユーザーはデスクトップからこれらの機能を直接起動することができ、アプリの利便性和ユーザー体験が大幅に向上します。

二、静的クイックメニューの設定

1. 設定ファイル

静的クイックメニューの設定ファイルはbase->profileディレクトリにあります。このディレクトリにshortcuts_config.jsonファイルを作成し、クイックメニュー項目を定義する必要があります。以下が設定ファイルの核心内容です:

{
  "shortcuts": [
    {
      "shortcutId": "my_scores",
      "label": "$string:shortcut_grades",
      "icon": "$media:icon_shortcut_grades",
      "wants": [
        {
          "bundleName": "パッケージ名",
          "moduleName": "entry",
          "abilityName": "EntryAbility",
          "parameters": {
            "action": "action.view.scores"
          }
        }
      ]
    },
    {
      "shortcutId": "my_events",
      "label": "$string:shortcut_race",
      "icon": "$media:icon_shortcut_race",
      "wants": [
        {
          "bundleName": "パッケージ名",
          "moduleName": "entry",
          "abilityName": "EntryAbility",
          "parameters": {
            "action": "action.view.events"
          }
        }
      ]
    },
    {
      "shortcutId": "start_running",
      "label": "$string:shortcut_sport",
      "icon": "$media:icon_shortcut_sport",
      "wants": [
        {
          "bundleName": "パッケージ名",
          "moduleName": "entry",
          "abilityName": "EntryAbility",
          "parameters": {
            "action": "action.start.running"
          }
        }
      ]
    }
  ]
}

核心点解析

shortcutId:各クイックメニュー項目の一意の識別子。

label:クイックメニュー項目の表示名で、国際化リソースをサポートします。

icon:クイックメニュー項目のアイコンリソース。

wants:クリックしたクイックメニュー項目をクリックすると起動するターゲットページ及其パラメーターを定義します。

2. モジュールのabilitiesに設定を追加する

モジュールのabilities設定ファイルに、クイックメニュー設定への参照を追加します。以下が設定コードです:

"metadata": [
  {
    "name": "ohos.ability.shortcuts",
    "resource": "$profile:shortcuts_config"
  }
]

核心点解析

metadata:能力に関連するメタデータを定義します。

name:メタデータの名前で、固定値はohos.ability.shortcutsです。

resource:クイックメニュー設定ファイルへのパスを指します。

三、クイックメニューのジャンプを処理する

EntryAbilityで、クイックメニュー項目のクリックイベントを処理する必要があります。onNewWantメソッドを使用して、クイックメニュー項目のクリックイベントをキャッチし、渡されたパラメーターに応じて対応するページにジャンプします。以下が処理ロジックの核心コードです:

onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
  // ショートカットのジャンプを処理する
  if (want.parameters?.action) {
    let action = want.parameters['action'];
    if (action) {
      this.handleShortcutAction(action as string);
    }
  }
}

private handleShortcutAction(action: string): void {
  switch (action) {
    case 'action.view.scores':
      LibNavigator.pushPathByName(SportRouteName.MetronomePage, undefined);
      break;
    case 'action.view.events':
      LibNavigator.pushPathByName(SportRouteName.FileSelectPage, undefined);
      break;
    case 'action.start.running':
      LibNavigator.pushPathByName(SportRouteName.RunningSettingPage, undefined);
      break;
    default:
      entryLogger.warn(`不明なショートカットアクション: ${action}`);
  }
}

核心点解析

onNewWant:ユーザーがクイックメニュー項目をクリックすると、システムはonNewWantメソッドを呼び出します。

want.parameters:渡されたパラメーターを取得し、カスタムのactionを含みます。

handleShortcutActionactionの値に応じて、対応するページジャンプロジックを呼び出します。

四、まとめと展望

鴻蒙の静的クイックメニュー機能を使用することで、ユーザーにアプリの特定機能に素早くジャンプする便利な方法を提供することができます。

Discussion