0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙OS实战开发:【多设备自适应服务卡片】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-09 09:20 次阅读

介绍

服务卡片的布局和使用,其中卡片内容显示使用了一次开发,多端部署的能力实现多设备自适应。
用到了卡片扩展模块接口,[@ohos.app.form.FormExtensionAbility] 。

卡片信息和状态等相关类型和枚举接口,[@ohos.app.form.formInfo]。

卡片数据绑定的能力接口[@ohos.app.form.formBindingData]。

效果预览

image.png

使用说明

长按示例应用,等待出现服务卡片字样,点击后可左右滑动选择需要的卡片尺寸,添加到屏幕。

更多鸿蒙开发应用知识已更新[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]参考前往。

具体实现

搜狗高速浏览器截图20240326151547.png
1、在module.json5文件添加拓展能力,类型为卡片,并设置卡片入口srcEntrance和卡片元数据metadata。[源码参考] 如果失效请添加mau123789是v直接拿取。

/*

 * Copyright (c) 2023 Huawei Device Co., Ltd.

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *     http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */



{

  "module": {

    "name": "entry",

    "type": "entry",

    "description": "$string:module_desc",

    "mainElement": "EntryAbility",

    "deviceTypes": [

      "default",

      "tablet"

    ],

    "deliveryWithInstall": true,

    "installationFree": false,

    "pages": "$profile:main_pages",

    "abilities": [

      {

        "name": "EntryAbility",

        "srcEntrance": "./ets/entryability/EntryAbility.ets",

        "description": "$string:EntryAbility_desc",

        "icon": "$media:icon",

        "label": "$string:EntryAbility_label",

        "startWindowIcon": "$media:icon",

        "startWindowBackground": "$color:start_window_background",

        "visible": true,

        "skills": [

          {

            "entities": [

              "entity.system.home"

            ],

            "actions": [

              "action.system.home"

            ]

          }

        ]

      }

    ],

    "extensionAbilities": [

      {

        "name": "EntryFormAbility",

        "srcEntrance": "./ets/entryformability/EntryFormAbility.ets",

        "label": "$string:EntryFormAbility_label",

        "description": "$string:EntryFormAbility_desc",

        "type": "form",

        "metadata": [

          {

            "name": "ohos.extension.form",

            "resource": "$profile:form_config"

          }

        ]

      }

    ]

  }

}

例如:"metadata": [ { "name": "ohos.extension.form", "resource": "$profile:form_config" }。
2、初始化卡片:通过实现@ohos.app.form.FormExtensionAbility卡片操作类,在卡片对象首次被创建时,初始化卡片绑定数据为空,并将卡片状态设置为就绪状态READY。 例如:onCreate(){ formBindingData.createFormBindingData({}) onAcquireFormState(want) { return formInfo.FormState.READY }。
3、配置卡片:用js编写相应的卡片,将卡片配置到resources/base/profile/form_config, [源码参考]

{

  "forms": [

    {

      "name": "complex",

      "description": "This is a service widget.",

      "src": "./js/complex/pages/index/index",

      "window": {

        "designWidth": 720,

        "autoDesignWidth": true

      },

      "colorMode": "auto",

      "isDefault": true,

      "updateEnabled": true,

      "scheduledUpdateTime": "10:30",

      "updateDuration": 1,

      "defaultDimension": "2*2",

      "supportDimensions": [

        "2*2",

        "4*4"

      ]

    },

    {

      "name": "test",

      "description": "This is a service widget.",

      "src": "./js/test/pages/index/index",

      "window": {

        "designWidth": 720,

        "autoDesignWidth": true

      },

      "colorMode": "auto",

      "isDefault": false,

      "updateEnabled": true,

      "scheduledUpdateTime": "10:30",

      "updateDuration": 1,

      "defaultDimension": "2*2",

      "supportDimensions": [

        "2*2"

      ]

    },

    {

      "name": "immersive",

      "description": "This is a service widget.",

      "src": "./js/immersive/pages/index/index",

      "window": {

        "designWidth": 720,

        "autoDesignWidth": true

      },

      "colorMode": "auto",

      "isDefault": false,

      "updateEnabled": true,

      "scheduledUpdateTime": "10:30",

      "updateDuration": 1,

      "defaultDimension": "2*2",

      "supportDimensions": [

        "2*2"

      ]

    },

    {

      "name": "grid",

      "description": "This is a service widget.",

      "src": "./js/grid/pages/index/index",

      "window": {

        "designWidth": 720,

        "autoDesignWidth": true

      },

      "colorMode": "auto",

      "isDefault": false,

      "updateEnabled": true,

      "scheduledUpdateTime": "10:30",

      "updateDuration": 1,

      "defaultDimension": "2*2",

      "supportDimensions": [

        "2*2"

      ]

    },

    {

      "name": "imgText",

      "description": "This is a service widget.",

      "src": "./js/imgText/pages/index/index",

      "window": {

        "designWidth": 720,

        "autoDesignWidth": true

      },

      "colorMode": "auto",

      "isDefault": false,

      "updateEnabled": true,

      "scheduledUpdateTime": "10:30",

      "updateDuration": 1,

      "defaultDimension": "2*2",

      "supportDimensions": [

        "2*2",

        "2*4"

      ]

    }

  ]

}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HarmonyOS
    +关注

    关注

    79

    文章

    1968

    浏览量

    30058
  • OpenHarmony
    +关注

    关注

    25

    文章

    3682

    浏览量

    16183
  • 鸿蒙OS
    +关注

    关注

    0

    文章

    188

    浏览量

    4373
收藏 人收藏

    评论

    相关推荐

    鸿蒙OS开发实例:【手撸服务卡片

    服务卡片指导文档位于“**开发/应用模型/Stage模型开发指导/Stage模型应用组件**”路径下,说明其极其重要。本篇文章将分享实现服务
    的头像 发表于 03-28 22:11 1165次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b>实例:【手撸<b class='flag-5'>服务</b><b class='flag-5'>卡片</b>】

    鸿蒙OS开发:【一次开发,多端部署】应用(自适应布局)

    针对常见的开发场景,方舟开发框架提炼了七种自适应布局能力,这些布局可以独立使用,也可多种布局叠加使用。
    的头像 发表于 05-24 10:34 959次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b>:【一次<b class='flag-5'>开发</b>,多端部署】应用(<b class='flag-5'>自适应</b>布局)

    鸿蒙OS开发:【一次开发,多端部署】(设备自适应能力)实例

    此Demo展示在JS中的设备自适应能力,包括资源限定词、原子布局和响应式布局。
    的头像 发表于 05-20 18:27 1295次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b>:【一次<b class='flag-5'>开发</b>,多端部署】(<b class='flag-5'>多</b><b class='flag-5'>设备</b><b class='flag-5'>自适应</b>能力)实例

    鸿蒙OS开发:【一次开发,多端部署】(自适应布局)

    针对常见的开发场景,方舟开发框架提炼了七种自适应布局能力,这些布局可以独立使用,也可多种布局叠加使用。
    的头像 发表于 05-25 16:36 1656次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b>:【一次<b class='flag-5'>开发</b>,多端部署】(<b class='flag-5'>自适应</b>布局)

    鸿蒙实战项目开发:【短信服务

    数据管理 电话服务 分布式应用开发 通知与窗口管理 多媒体技术 安全技能 任务管理 WebGL 国际化开发 应用测试 DFX面向未来设计 鸿蒙系统移植和裁剪定制 …… ​ 《
    发表于 03-03 21:29

    鸿蒙原生开发手记:01-元服务开发

    同样的使用方法。 服务卡片服务可以添加服务卡片,详细介绍见《鸿蒙原生
    发表于 11-14 17:28

    鸿蒙os系统是什么意思 鸿蒙os系统有什么作用

    适配智慧屏,未来它将适配手机,平板,电脑,智能汽车,可穿戴设备终端设备鸿蒙微内核是基于微内核的全场景分布式OS,可按需扩展,实现更广泛
    发表于 12-17 11:34

    木棉花:【资料汇集】服务卡片相关学习资料的汇总

    前言木棉花组织是对鸿蒙学习的相关资源进行整合,由深圳大学学生团队负责,长期更新。此次是将电子发烧友上的有关鸿蒙服务卡片学习相关资料进行汇总,以下是部分资料的展示,更多资料收纳在我们组织
    发表于 08-12 23:48

    《HarmonyOS原子化服务卡片原理与实战》清华大学出版社李洋著

    对原子化服务未来发展的展望;继续努力体验与成长,持续奋斗。本书主要阐述鸿蒙操作系统( HarmonyOS )应用开发中全新的服务形式,原子化服务
    发表于 12-29 12:14

    鸿蒙原生应用开发-折叠屏、平板设备服务卡片适配

    一、设备卡片适配原则 为不同尺寸的卡片提供不同的功能 在卡片开发过程中请考虑适配不同尺寸的设备
    发表于 11-16 10:10

    AD9557:双路输入服务线路卡自适应时钟转换器

    AD9557:双路输入服务线路卡自适应时钟转换器
    发表于 03-21 14:48 6次下载
    AD9557:双路输入<b class='flag-5'>多</b><b class='flag-5'>服务</b>线路卡<b class='flag-5'>自适应</b>时钟转换器

    B站添加鸿蒙服务卡片教程

    ‍‍‍‍‍‍‍‍ 6 月 2 日鸿蒙发布,今年的六月已经被鸿蒙刷屏了。从安卓到鸿蒙,最直观的变化应该就是服务卡片了。我也是在学习
    的头像 发表于 08-12 10:07 2700次阅读
    B站添加<b class='flag-5'>鸿蒙</b><b class='flag-5'>服务</b><b class='flag-5'>卡片</b>教程

    华为开发者大会2021鸿蒙os在哪场

    华为开发者大会2021将在10月22日-24日举办,地点为东莞松山湖,鸿蒙os 3.0或将与我们见面,那么华为开发者大会2021鸿蒙
    的头像 发表于 10-22 15:24 1884次阅读

    一款鸿蒙版的哔哩哔哩服务卡片应用案例

    介绍 这是一款纯鸿蒙版的哔哩哔哩服务卡片应用。 6月2日鸿蒙发布,今年的六月已经被鸿蒙刷屏了。从安卓到鸿
    发表于 04-07 09:42 0次下载

    鸿蒙OS开发:【一次开发,多端部署】(设备自适应能力)简单介绍

    本示例是《一次开发,多端部署》的配套示例代码,展示了[页面开发的一多能力],包括自适应布局、响应式布局、典型布局场景以及资源文件使用。
    的头像 发表于 05-21 14:59 2338次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b>:【一次<b class='flag-5'>开发</b>,多端部署】(<b class='flag-5'>多</b><b class='flag-5'>设备</b><b class='flag-5'>自适应</b>能力)简单介绍