HarmonyOS 鸿蒙Next hdc shell aa start拉起应用时怎么传参

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next hdc shell aa start拉起应用时怎么传参 使用 aa 命令中的 --ps,怎么拉起应用时传递 want 参数:

hdc shell aa start -a floatServiceAbility -b ohos.wdgs.float --ps info test123
5 回复
您好!您的版本可能过低,建议更新下工具版本

C:\Users> hdc shell aa start -a floatWindowServiceAbility -b ohos.bdtd.floatwindow --ps paramsstring aaaaa
error: failed to start ability.
error: resolve ability err.
C:\Users> hdc -v
Ver: 3.0.0d

更多关于HarmonyOS 鸿蒙Next hdc shell aa start拉起应用时怎么传参的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


您好!

可以通过aa工具传递自定义参数,在onCreate时通过want获取自定义参数,存储在LocalStorage中,在onWindowStageCreate时获取LocalStorage中的参数值,传递给windowStage.loadContent。示例代码如下:

  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    let targetPage: string = want.parameters?.targetPage as string ?? '';  //命令中的自定义参数会通过want携带,在这里获取
    this.storage.setOrCreate('targetPage', targetPage);   // 存入LocalStorage中
    GlobalContext.getContext().setObject('MainContext',this.context);
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  }

  onWindowStageCreate(windowStage: window.WindowStage): void {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
    let targetPageInStorage: string = this.storage.get('targetPage') as string;  // 从LocalStorage获取参数值
    let targetPage: string = targetPageInStorage == "" ? "pages/Index" : targetPageInStorage;  // 指定参数为空时的默认页面
    windowStage.loadContent(targetPage, (err, data) => {
      if (err.code) {
        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
        return;
      }
      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
    });
  }

命令行执行hdc shell aa start -a EntryAbility -b com.example.myapplication --ps targetPage pages/Page1
这里通过aa工具的–ps参数,传递key为targetPage,value为 pages/Page1的键值对给want,在onCreate中能解析到

其他形式的参数,可参考aa工具文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/aa-tool-0000001821000453

您好!

我的hdc start 自定义参数拉起应用的时候报错,无法传递参数,显示没有自定义参数这个选项。

在HarmonyOS(鸿蒙)系统中,使用hdc shell命令拉起应用并传递参数时,可以通过特定的命令格式来实现。具体步骤如下:

  1. 确定应用包名和主Activity:首先,需要明确你想要拉起的应用的包名以及该应用的主Activity名称。这是拉起应用的基本信息。

  2. 构建hdc shell命令:使用hdc shell命令结合am start指令来拉起应用,并在其中嵌入需要传递的参数。例如,如果应用的包名为com.example.app,主Activity为.MainActivity,且需要传递一个字符串参数param1,其值为value1,则命令可能如下所示:

    hdc shell am start -n com.example.app/.MainActivity --es "param1" "value1"
    

    其中,--es表示传递一个字符串类型的参数,param1是参数名,value1是参数值。

  3. 执行命令:在终端或命令行界面中执行上述hdc shell命令,即可拉起应用并传递参数。

请注意,上述命令中的参数类型和格式可能因应用而异,具体取决于应用接收参数的方式。如果应用期望接收其他类型的参数(如整型、布尔型等),则需要使用对应的参数传递选项(如--ei--ez等)。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部