打印扩展能力
概述
打印扩展能力从API version 14开始支持。打印扩展能力是对系统打印功能的扩展,允许开发者以软件的方式模拟打印机行为,实现与上层应用的打印交互。通过该扩展能力,开发者可以实现特殊场景下的定制化打印逻辑,在统一框架下灵活开发差异化功能,提升解决方案的适应性与可维护性。
回调说明
| 回调名称 | 回调描述 |
|---|---|
| onCreate(want: Want): void | 初始化打印机能力 |
| onDestroy(): void | 结束打印扩展 |
| onStartDiscoverPrinter(): void | 开始发现打印机 |
| onStopDiscoverPrinter(): void | 停止发现打印机 |
| onConnectPrinter(printerId: number): void | 连接打印机 |
| onDisconnectPrinter(printerId: number): void | 断开与打印机的连接 |
开发步骤
实现打印扩展能力
-
新建工程目录
在工程entry Module对应的ets目录 (./entry/src/main/ets)下,新建目录及ArkTs文件。例如新建一个目录并命名为PrintExtensionAbility,在PrintExtensionAbility目录下,新建一个ArkTs文件并命名为MyPrintExtension.ets,用以实现打印扩展能力接口。
-
打开MyPrintExtension.ets文件,导入模块。
import { PrintExtensionAbility } from '@kit.BasicServicesKit'; -
实现PrintExtensionAbility提供的接口。
import { PrintExtensionAbility } from '@kit.BasicServicesKit';import { Want } from '@kit.AbilityKit';// 创建打印扩展能力类,继承PrintExtensionAbility,并实现打印扩展功能。export default class MyPrintExtension extends PrintExtensionAbility {// 系统首次连接打印扩展时调用。onCreate(want: Want): void {console.info('onCreate');// 初始化扩展能力,可以在此注册事件。}// 结束打印扩展时调用。onDestroy(): void {console.info('onDestroy');// 注销事件。}// 开始发现打印机时调用。onStartDiscoverPrinter(): void {console.info('onStartDiscoverPrinter enter');// 实现发现打印机的逻辑。}// 停止发现打印机时调用。onStopDiscoverPrinter(): void {console.info('onStopDiscoverPrinter enter');// 实现停止发现打印机的逻辑。}// 连接某台打印机时调用。onConnectPrinter(printerId: number): void {console.info('onConnectPrinter enter');// 实现连接打印机逻辑。可以通过打印机ID连接指定的打印机、查询打印机能力等。}// 断开与某台打印机的连接时调用。onDisconnectPrinter(printerId: number): void {console.info('onDisconnectPrinter enter');// 实现断开打印机连接逻辑。可以通过打印机ID断开与指定打印机的连接。}} -
在工程entry Module目录下的module.json5配置文件中(./entry/src/main/module.json5)注册PrintExtensionAbility并设置如下标签:
-
type标签设置为"print";
-
srcEntry标签设置为当前ExtensionAbility组件所对应的代码路径。
示例如下:
{"module": {"extensionAbilities": [{"name": "MyPrintExtension","srcEntry": "./ets/PrintExtensionAbility/MyPrintExtension.ets","type": "print"}]}} -
功能验证
确认打印扩展能力PrintExtensionAbility中的回调方法实现是否正确、是否可以成功回调。在成功推送HAP包到设备后,可以在设置-打印机和扫描仪-添加打印机和扫描仪,拉起打印扩展能力,执行相应的动作触发回调时机后,通过查找对应接口实现中的日志(由开发者实现的业务逻辑决定)来判断是否成功回调。