“作者:坚果 华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。”
在开始之前可以先看下这张图,我们不仅陷入思索,这种卡片是如何制作的,接下来我们就一探究竟,当然,由于我是刚开始做,所以布局这方面如果做的不好,还是希望大家见谅。
image-20220120213441454
在此之前,我们先来了解一下
服务卡片是FA的一种主要信息呈现形式,开发者可以在卡片中展示用户最关心的FA数据,并可以通过点击卡片内容直接打开FA。例如,
支持的尺寸包括:12、22、24和44。
服务卡片提供了多种类型的模板,开发者可以根据需要展示的信息类型灵活选择模板,快速构建服务卡片。
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_service_widget-0000001078566997
DevEco Studio提供服务卡片的一键创建功能,可以快速创建和生成服务卡片模板。
image-20220120223450648
卡片创建完成后,会在工程目录下生成EntryCard目录。
image-20220120223631423
在该目录下,每个拥有EntryCard的模块,都会生成一个和模块名相同的文件夹,同时还会默认生成一张2x2的快照型EntryCard图片(png格式)。
开发者可以将其替换为提前设计好的2x2快照图:将新的快照图拷贝到上图目录下,删除默认图片,新图片命名遵循格式“卡片名称-2x2.png”。
img
img
点击放大
在开发服务卡片过程中,支持对卡片进行实时预览。服务卡片通过XML或JS文件进行布局设计,在开发过程中,可以对布局XML/JS文件进行实时预览,只要在XML/JS布局文件中保存了修改的源代码,在预览器中就可以实时查看布局效果。在Phone和Tablet服务卡片的预览效果中,每个尺寸的服务卡片提供3种预览效果,分别为极窄(Minimum)、标准(Default)、极宽(Maximum),开发者应确保三种尺寸的显示效果均正常,以便适应不同屏幕尺寸的设备。
image-20220120224435995
config.json文件"abilities"配置forms模块细节如下,各属性详情可见表1。
"forms": [
{
"name": "Form_Java",
"description": "form_description",
"type": "Java",
"colorMode": "auto",
"isDefault": true,
"updateEnabled": true,
"scheduledUpdateTime": "10:30",
"updateDuration": 1,
"defaultDimension": "2*2",
"formVisibleNotify": true,
"supportDimensions": [
"1*2",
"2*2",
"2*4",
"4*4"
],
"landscapeLayouts": [
"$layout:form_ability_layout_1_2",
"$layout:form_ability_layout_2_2",
"$layout:form_ability_layout_2_4",
"$layout:form_ability_layout_4_4"
],
"portraitLayouts": [
"$layout:form_ability_layout_1_2",
"$layout:form_ability_layout_2_2",
"$layout:form_ability_layout_2_4",
"$layout:form_ability_layout_4_4"
],
"formConfigAbility": "ability://SecondFormAbility",
"metaData": {
"customizeData": [
{
"name": "originWidgetName",
"value": "com.huawei.weather.testWidget"
}
]
}
}
]
说明
"forms"模块中的name为卡片名,即在onCreateForm中根据AbilitySlice.PARAM_FORM_NAME_KEY可取到的值。
在卡片所在的"abilities"中还需要配置"visible": true和"formsEnabled": true。
参考文档
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-service-widget-provider-java-0000001104082220