加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 系统 > 正文

给自己的鸿蒙卡片增加编辑能力

发布时间:2022-02-11 12:25:41 所属栏目:系统 来源:互联网
导读:假设您已经知道了如何为鸿蒙应用增加服务卡片,本文重点介绍如何为卡片增加编辑能力。 如果想了解更多关于创建鸿蒙卡片的知识,请参考鸿蒙官网指南 https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-service-widget-provider-js
  假设您已经知道了如何为鸿蒙应用增加服务卡片,本文重点介绍如何为卡片增加编辑能力。
 
  如果想了解更多关于创建鸿蒙卡片的知识,请参考鸿蒙官网指南
 
  ​​https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-service-widget-provider-js-0000001150602175​​
 
  示例:
 
  有一个应用的服务卡片在没有编辑功能时,快捷菜单如下,
 
 
 
  增加了编辑功能后,快捷菜单变成如下,
 
 
 
  可以看到快捷菜单中多了一个“编辑” 菜单,点击“编辑” ,会打开一个新的页面,
 
 
 
  这个页面是一个Ability,主要功能是编辑卡片颜色的。
 
  本篇文章介绍如何增加“编辑”菜单,并链接到指定的Ability。
 
  知识点:
  formConfigAbility参数
 
  formConfigAbility参数在配置文件config.json中对应的form节点下,它表示卡片的配置跳转链接,采用URI格式,它的作用是指定导航到编辑页面的 Page ability。
 
  配置格式为:ability://单个ability名字
 
  如果不配置“formConfigAbility”参数,则无卡片编辑功能。
 
  比如上面示例中formConfigAbility的配置在,
 
  config.json文件中module节点的abilities子节点下的forms,在拥有编辑功能的form卡片的配置节点下,
 
  复制
  {
    "jsComponentName": "motto-1x2",
    "isDefault": false,
    "scheduledUpdateTime": "01:30",
    "defaultDimension": "1*2",
    "formConfigAbility": "ability://com.droidzxy.timetable.ColorAbility",
    "name": "motto",
    "description": "彩色星期",
    "colorMode": "auto",
    "type": "JS",
    "supportDimensions": [
      "1*2"
    ],
 
   实践:
  1.增加编辑页面
  我们下面要做的是,新增加一个编辑页面,然后让选择编辑菜单时打开新增加的编辑页面,
 
  我们在entry->src->main->java上右击,在快捷菜单中选择 New->Ability->Empty Page Ability(Java) ,
 
 
 
  我们命名为ConfigAbility,
 
 
 
  在代码目录结构上,我们可以看到,创建了如下文件
 
  复制
  ConfigAbility.java,
  ConfigAbilitySlice.java,
  ability_config.xml
  
 
  我们创建ConfigAbility的时候,默认创建了一个ConfigAbilitySlice,说明默认Ability 是由Slice 组成的 ,实际上页面的加载也可以直接放到Ability里。但当页面内容多,无法同时显示时,我们可以把相同功能设计到同一个slice里面,在满足不同条件时加载不同的slice。
 
  我们新增加的这个页面的默认布局文件为ability_config.xml,预览如下
 
 
 
  我们可以在这个页面设计自己需要实现的卡片编辑功能。
 
  2.修改配置文件config.xml
  我们在对应的卡片form节点直接增加formConfigAbility属性,或者修改原来的formConfigAbility属性
 
  复制
  "formConfigAbility": "ability://com.droidzxy.timetable.ConfigAbility",
 
 
  1.
  3.编译安装
  真机上点击卡片的编辑菜单,就会出现如下页面。
 
 
 
  4. 读写配置
  我们一般在编辑界面通常要做一些设置,这些设置会反应到原来的服务卡片上,这时,我们想到的最简单的方法是通过配置文件的方式,在编辑页面Ability写配置文件,然后在服务卡片对应的Ability里读同样的配置文件,通常会用到类似如下方法
 
  复制
  DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
  Preferences preferences = databaseHelper.getPreferences("pref");
  preferences.putString(“name”, strName);
  preferences.flush();
 
 
   但是,实践后我们发现,不同的Ability对应的getContext()是不一样的,即使MainAbility和ConfigAbility是在同一个命名空间下,但它们会有各自的配置文件,所以如果用上述方法访问配置文件,那么是访问不到相同文件的。我们需要把getContext改为getApplicationContext,即
 
  复制
  DatabaseHelper databaseHelper = new DatabaseHelper(getApplicationContext());
 
 
  1.
  这样在ConfigAbility写配置文件,然后在MainAbility中读配置文件时,才能保证读写的是同一个文件。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读