【鸿蒙开发示例代码】手写笔服务

代码工程地址:

PenKit_SampleCode_ArkTS: 本示例展示了利用Pen Kit(手写笔服务)能力实现应用集成手写功能。 (gitee.com)

华为手写服务示例代码

目录

简介

手写笔服务(Pen Kit)是华为提供的一套手写套件,提供笔刷效果、笔迹编辑、报点预测和一笔成形功能,为开发者提供丰富而便捷的手写能力,开发者可以轻松集成实现手写功能,享受优质的手写体验,创造更多的手写应用场景 本示例展示了如何接入PenKit提供的能力。

环境要求

  1. 设备类型:华为手机、平板和2in1。
  2. HarmonyOS系统:HarmonyOS NEXT Developer Beta1及以上。
  3. DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。
  4. HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。

使用说明

业务使用时,需要导入相应模块,使用import{ HandwriteComponent, HandwriteController }from '@kit.PenKit' 引入。 初始化HandwriteController。 通过callback回调的方式获取HandwriteController数据加载动作已完成的时机 调用HandwriteController组件,传入已初始化后的HandwriteController, 并传入初始化完成后的callback和缩放后onScale的回调响应。

import { HandwriteComponent, HandwriteController} from '@kit.Penkit';

@Entry
@Component
export struct HandWritingComponent {
  controller: HandwriteController = new HandwriteController();
  // 根据应用存储规则,获取到手写文件保存的路径,此处仅为实例参考
  initPath : string = "aa";

  aboutToAppear(){
    // 加载时设置保存动作完成后的回调。
    this.controller.onLoad(this.callback);
  }

  // 手写文件内容加载完毕渲染上屏后的回调,通知接入用户,可在此处进行自定义行为
  callback = () => {
    // 自定义行为,例如文件加载完毕后展示用户操作指导
  }

  aboutToDisappear(){
    // HandWriteDemo退出时调用保存接口
    const id : string = '0';
    const path : string = `savePath`; // 需根据应用存储规则,获取到手写文件保存的路径,此处仅为实例参考
    this.controller?.save(path);
  }

  build() {
    Row() {
      Column() {
        HandwriteComponent({
          handwriteController: this.controller,
          onInit: () => {
            // 画布初始化完成时的回调。此时可以调用接口加载和显示笔记内容
            this.controller?.load(this.initPath);
          },
          onScale: (scale: number) => {
            // 画布缩放时的回调方法,将返回当前手写控件的缩放比例,可在此处进行自定义行为。
          }
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

在EntryAbility中设置contxt

  onWindowStageCreate(windowStage: window.WindowStage): void {
    // Main window is created, set main page for this ability
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

    windowStage.loadContent('pages/HandWritingComp', (err) => {
      if (err.code) {
        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
        return;
      }
      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');
    });
    GlobalContext.setContext(this.context);
  }

相关权限

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值