【HarmonyOS】巧用免安装能力分发原子化服务

 【前言】

对于原子化服务我们通常的入口是服务中心内搜索相应的服务,然后点击打开我们想要的服务。但是我们都知道的是:原子化服务具有免安装特性,如果我们想在应用推广时直接跳转到相应的原子化服务,而不通过服务中心是不是可行呢。

【思路】

对于HamronyOS常用的跳转方法,在JavaUI中我们会使用startAbility(intent)方法;在ArkUI中我们可以使用featureAbility.startAbilit(want)方式实现页面跳转的功能。对于我们免安装跳转原子化服务的想法系统给大家提供了一个跳转的FLAG:FLAG_INSTALL_ON_DEMAND

@ohos.ability.wantConstant (wantConstant)-Ability框架-接口参考(ArkTS及JS API)-手机、平板、智慧屏和智能穿戴开发-ArkTS API参考-HarmonyOS应用开发

FLAG_INSTALL_WITH_BACKGROUND_MODE

如果未安装,使用后台模式安装该功能。

下面我会对ArkUI和JavaUI两种跳转方法做相应的说明(以华为商城为例),具体的使用步骤如下。

【JavaUI 免安装跳转】

Intent intent=new Intent();

Operation operation=new Intent.OperationBuilder()

.withDeviceId("")

.withFlags(Intent.FLAG_INSTALL_ON_DEMAND|Intent.FLAG_ABILITY_NEW_MISSION)

.withBundleName("com.huawei.vmall.shop")

.withAbilityName("com.huawei.vmall.shop.MainShopAbility")

.build();

intent.setOperation(operation);

startAbility(intent);

【ArkUI 免安装跳转】

var str = {
  "want": {
    "deviceId": "",
    "bundleName": "com.huawei.vmall.shop",
    "abilityName": "com.huawei.vmall.shop.MainShopAbility",
    "uri": "",
    "action": "",
    "flags":wantConstant.Flags.FLAG_INSTALL_ON_DEMAND|wantConstant.Flags.FLAG_ABILITY_NEW_MISSION
  },
  "abilityStartSetting": {}
};
featureAbility.startAbility(str)
  .then((data) => {
    console.info('Operation successful. Data: ' + JSON.stringify(data))
  }).catch((error) => {
  console.error('Operation failed. Cause: ' + JSON.stringify(error));
})

【效果】

跳转后原子化服务会自动进行安装,效果如下。在我们有多个应用时,巧妙的使用这种方法就可以给用户推荐不同的原子化服务,极大利用了其免安装的特性。

cke_26015.png

 欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值