当前位置: 首页 > article >正文

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用

引言
DevEco AI辅助编程工具(CodeGenie)为开发者提供高效的应用/元服务AI辅助编程工具,支持HarmonyOS NEXT领域的智能知识问答、ArkTS代码补全/生成和万能卡片生成能力,提高开发者编码效率。
一、安装使用
建议使用DevEco Studio 5.0.3.403及以上版本。
文档中心

二、新建项目
项目构建:
若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择File > New > Create Project来创建一个新工程。
 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


选择Application应用开发,选择模板“Empty Ability”,点击Next进行下一步配置。
 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


进入配置工程界面,Compatible SDK表示兼容的最低API Version,此处以选择“5.0.0(12)”为例,其他参数保持默认设置即可
 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


点击Finish,工具会自动生成示例代码和相关资源,等待工程创建完成。

三、代码实现
代码实现只涉及到需要编程的代码文件
在右侧打开CodeGenie,登录账号。
 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


根据需求输入想要实现的卡片效果
 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


点击Save to Project,将创建好的卡片保存至项目中,命名为Poetry01。
 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


保存创建成功。
 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


Poetry01代码实现

let storage2086445731 = new LocalStorage()  

@Entry(storage2086445731)  
@Component  
struct Content_F {  
  // @LocalStorageProp('textSubTitleF') textSubTitleF: string = ''  
  @State imgLogo: Resource = $r('app.media.icon') // 应用图标资源  
  @LocalStorageProp('textMainTitleX') textMainTitleX: string = '沁园春' // 主标题文本,从本地存储读取,默认为“沁园春”  
  @LocalStorageProp('backgroundImg') backgroundImg: Resource = $r('app.media.bgImage01') // 背景图片资源,从本地存储读取,默认为bgImage01  
  @LocalStorageProp('textMainTitleB') textMainTitleB: string = '北国风光,千里冰封,万里雪飘。\n' +  
    '望长城内外,惟余莽莽;大河上下,顿失滔滔。\n' +  
    '山舞银蛇,原驰蜡象,欲与天公试比高。\n' +  
    '须晴日,看红装素裹,分外妖娆。\n' +  
    '江山如此多娇,引无数英雄竞折腰。\n' +  
    '惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。\n' +  
    '一代天骄,成吉思汗,只识弯弓射大雕。\n' +  
    '俱往矣,数风流人物,还看今朝。' // 主内容文本,从本地存储读取,默认为《沁园春·雪》  
  ClickToHome = () : void => {  
    // 点击跳转到主页面的函数  
    postCardAction(this, {  
      "action": "router",  
      // 配置跳转的 UIAbility 名称  
      'abilityName': 'EntryAbility',  
      // 配置传递的参数  
      "params": {  
        'targetPage': 'page1' // 目标页面为 page1  
      }  
    });  
  }  
  build() {  
    Stack({ alignContent: Alignment.TopEnd }) {  
      // 堆叠容器,内容顶部右对齐  
      Column() {  
        // 垂直布局  
        Text(this.textMainTitleX)  
          // 主标题文本  
          .constraintSize({ maxWidth: '80%' }) // 最大宽度限制为 80%  
          .fontColor(Color.Black) // 字体颜色为黑色  
          .fontSize('18') // 字体大小为 18  
          .fontWeight(FontWeight.Bold) // 字体粗细为粗体  
          .textOverflow({ overflow: TextOverflow.Ellipsis }) // 文字溢出时显示省略号  
          .maxLines(1) // 最大显示一行  
        Column() {  
          // 垂直布局  
          // Text(this.textSubTitleF)  
          //   .opacity(0.6)  
          //   .fontColor(Color.Black)  
          //   .fontSize('10')  
          //   .fontWeight(FontWeight.Regular)  
          //   .textOverflow({ overflow: TextOverflow.Ellipsis })  
          //   .maxLines(1)  
          Row() {  
            // 水平布局  
            Text(this.textMainTitleB)  
              // 主内容文本  
              .opacity(0.9) // 透明度为 0.9  
              .fontColor(Color.Black) // 字体颜色为黑色  
              .fontSize('14') // 字体大小为 14  
              .fontWeight(FontWeight.Medium) // 字体粗细为中等  
              .textOverflow({ overflow: TextOverflow.Ellipsis }) // 文字溢出时显示省略号  
              .lineHeight('19') // 行高为 19  
          }  
          .margin({ top: '2' }) // 顶部外边距为 2  
        }  
        .width('100%') // 宽度为 100%  
        // .alignItems(HorizontalAlign.Start)  
        // .justifyContent(FlexAlign.SpaceBetween)  
        .alignItems(HorizontalAlign.Center) // 子组件水平居中对齐  
        .justifyContent(FlexAlign.Center) // 子组件垂直居中对齐  
      }  
      .width('100%') // 宽度为 100%  
      .height('100%') // 高度为 100%  
      .alignItems(HorizontalAlign.Start) // 子组件水平左对齐  
      // .justifyContent(FlexAlign.SpaceBetween)  
      .justifyContent(FlexAlign.Center) // 子组件垂直居中对齐  
      Row() {  
        // 水平布局  
        Image(this.imgLogo)  
          // 应用图标  
          // .width('20')  
          // .height('20')  
          .width('36') // 宽度为 36  
          .height('36') // 高度为 36  
      }  
      .margin({ top: '3' }) // 顶部外边距为 3  
    }  
    .backgroundImage(this.backgroundImg) // 设置背景图片  
    .backgroundImageSize({ width: '100%', height: '100%' }) // 背景图片尺寸为 100% 宽度和高度  
    .padding('12') // 内边距为 12  
    .width('100%') // 宽度为 100%  
    .height('100%') // 高度为 100%  
    .onClick(this.ClickToHome) // 点击事件绑定到 ClickToHome 函数  
  }  
}

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.

复制

Poetry01相关代码说明
目录结构
 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


在module > src > main > ets 路径下, formcommon目录用于存放生成卡片的逻辑代码。
formsetting:存放用户可配置的文件。
formsetting > formdbsetting:自定义配置以数据库方式进行卡片刷新的相关参数。
formdbsetting > formdbinfo:存放包含卡片信息的Info.ets文件,可在Info.ets文件中,添加卡片刷新所需要的具体的数据,后续会读取该文件并将数据存入数据库中。
UserSettings.ets:可以自定义卡片刷新时从数据库获取数据的规则、数据解析规则、message内容刷新规则。
formsetting > formhttpsetting:自定义配置以网络请求方式进行卡片刷新的相关参数。
formhttpsetting > formhttpinfo:存放包含卡片信息的Info.ets文件,可在Info.ets文件中添加获取卡片刷新数据的URL。
UserSettings.ets:可以自定义卡片刷新时从URL获取数据的规则、数据解析规则、message内容刷新规则。
说明
如需使用网络请求方式刷新卡片页面,需在EntryFormAbility.ets文件中将FormDbUpdate的接口注释掉,并将启用FormHttpUpdate接口。
formsetting > FormAction.ets:配置卡片事件。
utils:存放工具类的目录,用户不可修改,如果修改再次生成逻辑代码时utils目录会被刷新。

自定义配置卡片事件
 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


可以在FormAction.ets文件中配置触发卡片router事件时具体的页面分发规则。
在EntryAbility.ets文件的onWindowStageCreate方法中会插入页面分发接口的调用,示例如下:
 

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


此接口默认插入到方法开头,可根据当前工程onWindowStageCreate逻辑来将此接口移动至合适的位置,保证页面能正常跳转。
四、效果实现

HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用-鸿蒙开发者社区


http://www.kler.cn/a/580652.html

相关文章:

  • QT系列教程(14) QT 按键事件
  • 【病毒分析】熊猫烧香病毒分析及其查杀修复
  • 【自学笔记】Rust语言基础知识点总览-持续更新
  • 两会聚焦科技金融创新,赛逸展2025成重要实践平台
  • 关于前后端整合和打包成exe文件的个人的总结和思考
  • MyBatis-Plus 与 Spring Boot 的最佳实践
  • 51c大模型~合集10
  • 小白学Agent技术[4](Agent设计模式)
  • Electron使用WebAssembly实现CRC-32 常用标准校验
  • Hcaptcha验证码自动识别方案详解
  • 台风信息查询API:数据赋能,守护安全
  • 每天一道算法题【蓝桥杯】【使用最小花费爬楼梯】
  • linux设置pem免密登录和密码登录
  • 【算法day3】寻找两个正序数组的中位数
  • 精选一百道备赛蓝桥杯——2.K倍区间
  • 解释 TypeScript 中的类型系统,如何定义和使用类型?
  • Go语言中位清除运算符的应用场景
  • Linux 内核自定义协议族开发:从 “No buffer space available“ 错误到解决方案
  • php虚拟站点提示No input file specified时的问题及权限处理方法
  • P8662 [蓝桥杯 2018 省 AB] 全球变暖--DFS