二、SDK方法说明
**SDK方法说明**
详细的引用方式可以参照demo的源码项目
***2.1引入插件***
在布局中引入,如下所示
```
<com.nj.wellsign.young.verticalScreen.hq.display.WSVerticalPDFView
android:id="@+id/pdfview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.nj.wellsign.young.verticalScreen.hq.display.WSVerticalPDFView>
```
说明:
WSVerticalPDFView:是继承RelativeLayout的,可以在这个布局内再添加自定义布局
***2.2需实现方法***
**初始化好签授权**
在APP初始化的时候调用一次即可(一般在APPContext类或MainActivity类调用)
```
ReturnResult result = WellSign.initializeSNKey(context,sn, key);
```
参数说明:
|参数名称| 参数类型 |说明|
|-|-|-|
|context |Context |安卓类android.content.Context|
|sn |String |好签提供授权码|
|key |String |好签提供密钥|
返回值说明:
ReturnResult好签定义返回类,包含属性returnCode和returnMessage,可以获取到初始化后返回的code和message,据此判断初始化成功还是失败。
|Code值 |类型 |定义|
|-|-|-|
|0 |int| 初始化成功|
|-1 |int| 授权信息为空或授权日期错误|
|-2 |int| 模块名称错误|
|-3 |int| 用户名错误|
|-4 |int| 包名校验错误|
|-5 |int| 解析数据错误|
|-6 |int| OEM授权码错误|
|-7 |int| APP名校验错误|
|-8 |int| 设备平台不符|
**initFileProvider()**
作用:初始化FileProvider
```
WellSign.setHQFileProvider("Your FileProvider");
```
**onActivityResult**
在自定义的Activity的onActivityResult回调中,调用WSVerticalPDFView的类方法:
dispatchActivityResult
```
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 如果有多个pdfview 则每个pdfview都需要调用
wsVerticalPDFView.dispatchActivityResult(requestCode, resultCode, data);
}
```
**closeHQFile()**
作用:关闭本页面,给好签插件调用
示例代码:
```
wsVerticalPDFView.closeHQFile();
```
**设置pdfview回调事件监听**
作用:监听PDF操作事件
```
WSVerticalPDFView.VerticalPDFViewCallback callback = new WSVerticalPDFView.VerticalPDFViewCallback() {
@Override
// 页码改变回调
public void onPageIndexChanged(final int page) {}
// 固化完成回调,succeed表示十分成功,code表示状态(-1:没有笔迹需要保存,0:保存成功)
@Override
public void onSolidResult(boolean succeed, int code) {}
// 固化进度回调
@Override
public void onSolidProgress(int progress) {}
// 保存临时签字文件完成回调
@Override
public void onSaveResult(boolean succeed, int code) {}
};
```
2.4SDK公开方法
|方法名| 说明|
|-|-|
|openFile(String filePath) |打开pdf文件|
|closeFile()| 关闭当前浏览文件|
|setPenType(int type)|设置笔类型 type:1 手写模式 type:2 擦除模式 type:3 浏览模式|
|setPenColor(int color)|设置手写笔颜色 color|
|setPenThick(int thikcness)|设置手写笔粗细 thikcness:0-7 依次变粗|
|clearCurrentPageWriteData() |清除当前页涂鸦笔迹|
|appendPage()| 在最后一页增加一页空白页|
|solidFile() |固化笔迹到pdf中|
|switchHQFile( String filePath) |切换pdf文件filePath:文件路径|
|setHQAutoDetectePen(boolean detectePen)|设置电磁笔输入isPen:true表示只允许电磁笔手写 false表示都可以输入|
|setHqContentView(R.layout.activityvertical ,params)|R.layout.activityvertical 布局文params好签内部控件的布局方式|
|haveUnsavedData() |是否有没有保存的信息|
|showPdfSignInfo() |获取签字历史信息|
|setUserInfo() |设置签字人信息|
|jumpToPage(int index) |跳转到指定页|
|slidePreviousPage() |向上滑动一页|
|slideNextPage() |向下滑动一页|
|insertSign() |插入签字|
|insertSeal() |插入印章|
|insertText() |插入文本|
|insertPictureFromAlbum() |从相册插入图片|
|insertPictureFromTakePhoto()|拍照插入图片|
|insertPicture(Bitmap bitmap) |插入图片到当前页中间|
|setUserInfo(String userId, String userName, String desc)|设置签批信息 userId:调用方用户id(唯一性),userName:用户名称,desc:签批描述
2.5 工具类
Wellsign类:
|方法名| 说明|
|-|-|
|getPdfPageCount(String pdfPath)|获取PDF总页数,pdfPath:文件路径|
|initializeSNKey(Context context,String sn, String key)|初始化好签授权|
|setHQFileProvider(String fileProvider)|设置好签fileProvider|
|setHQPDFDisplayMargins(int left, int top, int right, int bottom)|设置PDF展示区域到屏幕边缘的间距单位dp|