05 签名相关
## 设置界面结果回调
在签名API前,需要重写用户界面中的onActivityResult方法
**代码示例:**
```
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//调用控件API
mPdfView.dispatchActivityResult(requestCode, resultCode, data);
}
```
## 插入签名
### 插入签名
调用本方法后,页面会跳转到签名管理界面。
进入签名管理界面后,SDK自动同步当前用户的签名数据。
使用者可在签名管理界面管理用户签名。
签名默认放置在屏幕中心位置,点选签名后,该签名中被选中,可选择添加时间戳
注意:使用该方法前,请重写onActivityResult方法
**代码示例:**
插入签名到屏幕中心位置
```
mPdfView.insertSign();
```
插入签名到指定位置
```
mPdfView.insertSign(topLeftx,topLefty,defaultHeight,timestampIndex,
timestampPosition,timestampMargin);
```
**接口参数说明:**
- topLeftx
类型:float
说明:指定签名左上角x轴坐标(相对于pdf当前页宽度比例值,取值范围0-1)
topLeftx=0.5时,即从左上角起始PDF页一半的位置开始插入签名。
- topLefty
类型:float
说明:指定签名左上角y轴坐标(相对于pdf当前页高度比例值,取值范围0-1)
- width
类型:float
说明:签名对象插入时最大宽度(相对于pdf当前页宽度比例值,取值范围0-1,不包括0和1),将签名对象限定在宽度和高度矩形范围内
- height
类型:float
说明:签名对象插入时最大高度(相对于pdf当前页高度比例值,取值范围0~1,不包括0和1),将签名对象限定在宽度和高度矩形范围内
- timestampIndex
类型:int
说明:插入签名时,默认显示时间戳的样式
- timestampPosition
类型:int
说明:时间戳位置,值0:时间戳默认显示在签名底部,值1:时间戳默认显示在签名右边
- timestampMargin
类型:float
说明:时间戳距离签名距离,单位px
**签名管理界面效果展示:**
::: hljs-center
![截屏20220228 20.26.13.png](https://cos.easydoc.net/99875377/files/l06odsnr.png)
:::
---
以下方法针对部分用户有自定义化的界面的需求,可以使用好签提供的API,实现和业务系统的深度整合:
### 获取签名模板的数据信息
**代码示例:**
```
WellSign.getSignTemplateList(new WSCallBack() {
@Override
public void result(boolean success, WSResult result) {
if(success){
List<UserSignTemplate> userSignTemplateList= (List<UserSignTemplate>) result.getData();
//do something
}
}
});
```
**接口参数说明:**
- WSCallBack
类型:WSCallBack
说明:获取当前用户的所有签名模板信息 集合
**回调说明:**
- result
参数:success
类型:boolean
说明:执行结果
参数:result
类型:[WSResult](doc:cH4YGgz7)
说明:结果码和结果信息。result.getData() 为List<UserSignTemplate> 数据,关于UserSignTemplate的[说明](doc:fG6R7F4f)
### 插入指定的签名模板
签名默认放置在屏幕中心位置
**代码示例:**
```
mPdfView.insertSign(templateId);
```
**接口参数说明:**
- templateId
类型:String
说明:签名模板ID
### 打开增加签名模板视图
**代码示例:**
```
Intent intent = new Intent(mContext, WSAddSignActivity.class);
startActivity(intent);
```
调用SDK内部新增签名模板Activity,在书写签名保存完毕后即新增成功
**新增签名界面效果展示:**
::: hljs-left
![Screenshot_20220704162539107_com.nj.wellsign.jpg](https://cos.easydoc.net/99875377/files/l57wvcn5.jpg)
:::
### 删除签名模板
由于该接口是异步耗时操作,请自行添加进度条等遮罩直到回调返回。
**代码示例:**
```
WellSign.deleteSignTemplate(templateIdList, new WSCallBack() {
@Override
public void result(boolean success, WSResult result) {
//do something
}
});
```
**接口参数说明:**
- templateIdList
类型:List<String>
说明:要删除的签名模板id
- WSCallBack
类型:WSCallBack
说明:删除结果回调
**回调说明:**
- result
参数:success
类型:boolean
说明:执行结果
参数:result
类型:[WSResult](doc:cH4YGgz7)
说明:结果码和结果信息。