HarmonyOS 鸿蒙Next 外部应用拉起自己的应用,如何从want中获取参数

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

HarmonyOS 鸿蒙Next 外部应用拉起自己的应用,如何从want中获取参数

自己应用退到后台后(没有杀死),外部应用拉起,不走onCreate了,如何拿到want中携带的参数

3 回复
Ability的onNewWant回调方法

华为浏览器支持拉起外部应用

浏览器访问网页经常会遇到deeplink的场景。当前处理方案统一为使用AMS系统能力startAbility去隐式拉起。传递的want参数为

```

{

"actions": "ohos.want.action.viewData",

"uri": deeplink链接

}

```

网页需要给自己的应用拉活,因此在网页中添加按钮引导用户拉应用。网页端直接提示打开应用按钮绑定点击事件window.open(iyingyong://www.yingyong.com?url=XXX)>,点击该按钮,打开网页web端收到的url为iyingyong://www.yingyong.com?url=XXX

应用想被成功拉起则需要应用在工程的model.json5文件中配置abilities的skills中配置

```

{

"actions": [

"ohos.want.action.viewData"

],

"uris": [

{

"scheme": "iyingyong"

}

]

}

```

需要注意deeplink链接的scheme协议头必须网页拉起的链接的应用配置的保持一致。

另外浏览器不会对deeplink链接做任何解析或处理,只会原封不动的传递给拉起的应用。因此第三方应用只需要自己的网页端和应用端协商好url规则,自己去做解析打开对应页面即可

是用onNewWant这个方法,参考文档https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-app-ability-uiability-V5#uiabilityonnewwant

参考示例https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/uiability-intra-device-interaction-V5#目标uiability热启动

在HarmonyOS鸿蒙Next系统中,外部应用拉起你的应用时,通常会通过Intent(在鸿蒙中称为Want)携带参数。要从Want中获取参数,你可以按照以下步骤进行:

  1. 接收Want对象: 在你的应用入口(如Activity或Ability)中,系统会传递一个Want对象。确保你正确接收这个对象。

  2. 解析Want对象: 使用Want提供的API来解析参数。你可以通过Want.getParameter(String key)方法来获取指定键对应的值。例如,如果外部应用传递了一个名为"data"的参数,你可以使用want.getParameter("data")来获取它。

  3. 处理参数: 获取到参数后,根据业务需求进行处理。参数可能是字符串、数字或其他类型,需要相应地转换和处理。

  4. 错误处理: 在解析参数时,注意处理可能的异常情况,如参数不存在或类型不匹配等。

示例代码(伪代码):

public void onStart(Intent intent) {
    Want want = intent.getWant();
    String data = want.getParameter("data");
    // 处理data
}

请注意,上述代码是简化示例,实际开发中需要根据鸿蒙系统的API文档进行调整。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部