Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
5e0abd90
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5e0abd90
编写于
10月 11, 2022
作者:
@
@chuangda_1
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add 1011 code
Signed-off-by:
N
@chuangda_1
<
fangwanning@huawei.com
>
上级
2e399d38
变更
2
展开全部
显示空白变更内容
内联
并排
Showing
2 changed file
with
854 addition
and
201 deletion
+854
-201
zh-cn/application-dev/print/stage-printextensionability.md
zh-cn/application-dev/print/stage-printextensionability.md
+183
-0
zh-cn/application-dev/reference/apis/js-apis-print.md
zh-cn/application-dev/reference/apis/js-apis-print.md
+671
-201
未找到文件。
zh-cn/application-dev/print/stage-printextensionability.md
0 → 100644
浏览文件 @
5e0abd90
# PrintExtensionAbility开发指导
## 场景介绍
PrintExtensionAbility类定义了打印扩展生命周期方法,开发者可以自定义类继承PrintExtensionAbility,通过重写基类中相关生命周期方法,来实现打印机发现、连接,打印任务启动、取消,打印机能力和打印预览的查询等相关业务逻辑操作。
> **说明:**
>
> PrintExtensionAbility仅可在Stage模型下使用。
## 接口说明
**表1**
PrintExtensionAbility中相关生命周期API功能介绍
|接口名|描述|
|:------|:------|
|onCreated(want:
Want):
void| PrintExtension生命周期回调,在创建时回调,执行初始化业务逻辑操作。|
|onStartDiscoverPrinter():
void | PrintExtension生命周期回调,执行发现打印机业务逻辑操作。|
|onStopDiscoverPrinter():
void| PrintExtension生命周期回调,执行停止发现打印机业务逻辑操作。|
|onConnectPrinter(printerId:
number):
void| PrintExtension生命周期回调,执行连接打印机业务逻辑操作。
|onDisconnectPrinter(printerId:
number):
void|PrintExtension生命周期回调,执行连接打印机业务逻辑操作。|
|onStartPrintJob(jobInfo:
print.PrintJob):
void|PrintExtension生命周期回调,执行启动打印任务业务逻辑操作。|
|onCancelPrintJob(jobInfo:
print.PrintJob):
void| PrintExtension生命周期回调,执行取消打印任务业务逻辑操作。|
|onRequestPrinterCapability(printerId:
number):
print.PrinterCapability| PrintExtension生命周期回调,在print.queryPrinterCapability调用时回调,执行查询打印机能力业务逻辑操作。|
|onRequestPreview(jobInfo:
print.PrintJob):
string| PrintExtension生命周期回调,执行查询打印预览业务逻辑操作。|
|onDestroy():
void| PrintExtension生命周期回调,在销毁时回调,执行资源清理等操作。|
## 约束与限制
OpenHarmony当前不支持三方应用创建PrintExtensionAbility。
## 开发步骤
1.
需要在应用配置文件module.json5中进行注册,注册类型type需要设置为service。module.json5配置样例如下所示:
```
json
"extensionAbilities"
:[{
"name"
:
"CustomPrintExtensionAbility"
,
"srcEntrance"
:
"./ets/PrintExtensionAbility/CustomPrintExtensionAbility.ts"
,
"label"
:
"$string:form_FormAbility_label"
,
"description"
:
"$string:form_FormAbility_desc"
,
"type"
:
"service"
,
"metadata"
:
[
{
"name"
:
"ohos.extension.form"
,
"resource"
:
"$profile:form_config"
}
}
]
```
2.
请求权限。
需要在
`config.json`
文件里进行配置请求权限,用于使用打印相关API
[
打印管理API
](
../reference/apis/js-apis-print.md#print
)
,示例代码如下:
```json
{
"module": {
"reqPermissions": [
{
"name": "ohos.permission.MANAGE_PRINT_JOB"
}
]
}
}
```
3.
开发者在定义Service的目录下创建TS文件,自定义类继承PrintExtensionAbility,重写基类回调函数,接口生成的默认相对路径:entry
\s
rc
\m
ain
\e
ts
\P
rintExtensionAbility
\C
ustomPrintExtensionAbility.ts,示例如下:
```
js
import
PrintExtensionAbility
from
'
@ohos.PrintExtension
'
;
import
print
from
"
@ohos.print
"
;
import
Want
from
'
@ohos.application.Want
'
;
export
default
class
CustomPrintExtensionAbility
extends
PrintExtensionAbility
{
MODULE_TAG
:
string
=
"
customPrintExtensionAbility
"
onCreated
(
want
:
Want
):
void
{
console
.
info
(
this
.
MODULE_TAG
+
'
ability on created start
'
);
}
onStartDiscoverPrinter
()
{
console
.
info
(
this
.
MODULE_TAG
+
"
ability start to discover printer
"
);
let
printer1
=
{
printerId
:
1
,
// printer id
printerName
:
'
string
'
,
// printer name
printerIcon
:
1
,
// resource id of printer icon
printerState
:
1
,
// current printer state
description
:
'
string
'
,
// printer description
capability
:
PrinterCapability
,
}
let
printer2
=
{
printerId
:
2
,
// printer id
printerName
:
'
char
'
,
// printer name
printerIcon
:
2
,
// resource id of printer icon
printerState
:
2
,
// current printer state
description
:
'
char
'
,
// printer description
capability
:
PrinterCapability
,
}
let
printers
=
[
printer1
,
printer2
]
print
.
addPrinters
(
printers
,
(
err
,
data
)
=>
{
if
(
err
)
{
console
.
error
(
'
Operation failed. Cause:
'
+
JSON
.
stringify
(
err
));
return
;
}
console
.
info
(
'
Operation successful. Data:
'
+
JSON
.
stringify
(
data
));
});
}
onStopDiscoverPrinter
()
{
console
.
info
(
this
.
MODULE_TAG
+
'
ability stop discovering printer
'
);
}
onConnectPrinter
(
printerId
)
{
console
.
info
(
this
.
MODULE_TAG
+
'
ability connect the speci1 printer
'
);
console
.
info
(
this
.
MODULE_TAG
+
'
onConnectPrinter printerId:
'
+
JSON
.
stringify
(
printerId
));
}
onDisconnectPrinter
(
printerId
)
{
console
.
info
(
this
.
MODULE_TAG
+
'
ability disconnect the speci1 printer
'
);
console
.
info
(
this
.
MODULE_TAG
+
'
onDisconnectPrinter printerId:
'
+
JSON
.
stringify
(
printerId
));
}
onStartPrintJob
(
jobInfo
)
{
console
.
info
(
this
.
MODULE_TAG
+
'
ability start Print Job
'
);
console
.
info
(
this
.
MODULE_TAG
+
'
onStartPrintJob jobInfo:
'
+
JSON
.
stringify
(
jobInfo
));
}
onCancelPrintJob
(
jobInfo
)
{
console
.
info
(
this
.
MODULE_TAG
+
'
ability cancel Print Job
'
);
console
.
info
(
this
.
MODULE_TAG
+
'
onCancelPrintJob jobInfo:
'
+
JSON
.
stringify
(
jobInfo
));
}
onRequestPrinterCapability
(
printerId
)
{
console
.
info
(
this
.
MODULE_TAG
+
'
ability request printer capability
'
);
console
.
info
(
this
.
MODULE_TAG
+
'
onRequestPrinterCapability printerId:
'
+
JSON
.
stringify
(
printerId
));
let
PrinterPageSizeArr
=
[
{
id
:
'
1
'
,
name
:
'
string
'
,
width
:
200
,
height
:
200
,
}
]
let
PrintMargin
=
{
top
:
1
,
bottom
:
2
,
left
:
1
,
right
:
1
,
}
let
PrinterResolutionArr
=
[
{
id
:
2
,
horizontalDpi
:
2
,
verticalDpi
:
1
,
}
]
let
cap
=
{
minMargin
:
PrintMargin
,
pageSize
:
PrinterPageSizeArr
,
resolution
:
PrinterResolutionArr
,
colorMode
:
1
,
duplexMode
:
2
,
}
return
cap
;
}
onRequestPreview
(
jobInfo
)
{
console
.
info
(
this
.
MODULE_TAG
+
'
ability request printer preview
'
);
console
.
info
(
this
.
MODULE_TAG
+
'
onRequestPreview jobInfo:
'
+
JSON
.
stringify
(
jobInfo
));
}
onDestroy
()
{
console
.
info
(
this
.
MODULE_TAG
+
'
ability on destroy
'
);
}
};
```
## 相关实例
针对PrintExtensionAbility开发,有以下相关实例可供参考:
-
[
`Print_Extension_demo`:打印扩展(eTS)(API8)(Full SDK)
](
https://gitee.com/openharmony/applications_app_samples/tree/master/print/ServiceExtAbility
)
zh-cn/application-dev/reference/apis/js-apis-print.md
浏览文件 @
5e0abd90
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录