HarmonyOS 鸿蒙Next hdc shell aa start拉起应用时怎么传参
HarmonyOS 鸿蒙Next hdc shell aa start拉起应用时怎么传参
使用 aa
命令中的 --ps
,怎么拉起应用时传递 want
参数:
hdc shell aa start -a floatServiceAbility -b ohos.wdgs.float --ps info test123
您好!您的版本可能过低,建议更新下工具版本
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 自定义参数拉起应用的时候报错,无法传递参数,显示没有自定义参数这个选项。
Ver: 1.3.0a,
在HarmonyOS(鸿蒙)系统中,使用hdc shell命令拉起应用并传递参数时,可以通过特定的命令格式来实现。具体步骤如下:
-
确定应用包名和主Activity:首先,需要明确你想要拉起的应用的包名以及该应用的主Activity名称。这是拉起应用的基本信息。
-
构建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
是参数值。 -
执行命令:在终端或命令行界面中执行上述hdc shell命令,即可拉起应用并传递参数。
请注意,上述命令中的参数类型和格式可能因应用而异,具体取决于应用接收参数的方式。如果应用期望接收其他类型的参数(如整型、布尔型等),则需要使用对应的参数传递选项(如--ei
、--ez
等)。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,