222版,适应签名sdk
This commit is contained in:
parent
ea19730b10
commit
4cb3300cf5
@ -1,21 +1,51 @@
|
|||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
|
||||||
|
// 类型声明
|
||||||
|
declare global {
|
||||||
|
interface Window {
|
||||||
|
QysUKeySdk: any
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 动态加载 SDK
|
// 动态加载 SDK
|
||||||
export const loadUKeySdk = () => {
|
export const loadUKeySdk = () => {
|
||||||
return new Promise<void>((resolve, reject) => {
|
return new Promise<void>((resolve, reject) => {
|
||||||
|
// 如果已经加载过,直接返回
|
||||||
|
if (window.QysUKeySdk) {
|
||||||
|
resolve()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
const script = document.createElement('script')
|
const script = document.createElement('script')
|
||||||
script.src = '/sdk.min.v1.0.0.js'
|
script.src = '/sdk.min.v1.0.0.js'
|
||||||
script.type = 'text/javascript'
|
script.type = 'text/javascript'
|
||||||
|
|
||||||
// 确保 window 对象已准备好
|
let retryCount = 0
|
||||||
script.onload = () => {
|
const maxRetries = 10
|
||||||
|
const checkInterval = 100 // 100ms 检查一次
|
||||||
|
|
||||||
|
const checkSDK = () => {
|
||||||
if (window.QysUKeySdk) {
|
if (window.QysUKeySdk) {
|
||||||
|
console.log('SDK 加载成功')
|
||||||
resolve()
|
resolve()
|
||||||
|
} else if (retryCount < maxRetries) {
|
||||||
|
retryCount++
|
||||||
|
console.log(`等待 SDK 初始化... (${retryCount}/${maxRetries})`)
|
||||||
|
setTimeout(checkSDK, checkInterval)
|
||||||
} else {
|
} else {
|
||||||
reject(new Error('SDK 加载失败:QysUKeySdk 未定义'))
|
reject(new Error('SDK 加载失败:QysUKeySdk 未定义,请检查 SDK 文件是否正确'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
script.onload = () => {
|
||||||
|
console.log('SDK 脚本加载完成,开始检查初始化状态')
|
||||||
|
// 脚本加载完成后,给一点时间让 SDK 初始化
|
||||||
|
setTimeout(checkSDK, 50)
|
||||||
|
}
|
||||||
|
|
||||||
script.onerror = (error) => {
|
script.onerror = (error) => {
|
||||||
reject(new Error('SDK 加载失败:' + error))
|
console.error('SDK 脚本加载失败:', error)
|
||||||
|
reject(new Error('SDK 脚本加载失败:' + error))
|
||||||
}
|
}
|
||||||
|
|
||||||
document.head.appendChild(script)
|
document.head.appendChild(script)
|
||||||
@ -45,7 +75,7 @@ const uploadPdf = async (byteArray: number[], filename: string = 'signed.pdf') =
|
|||||||
formData.append('fileStream', fileStream);
|
formData.append('fileStream', fileStream);
|
||||||
formData.append('filename', filename);
|
formData.append('filename', filename);
|
||||||
formData.append('fileType', 'pdf');
|
formData.append('fileType', 'pdf');
|
||||||
formData.append('savePath', 'D:/陕西省咸阳市礼泉县心电图FTP/ecgimage/imgOcrAndProcess/');
|
formData.append('savePath', 'F:/陕西省咸阳市礼泉县心电图FTP/ecgimage/imgOcrAndProcess/');
|
||||||
|
|
||||||
const response = await fetch('https://zzxmc.gw12320.com/uploadFile', {
|
const response = await fetch('https://zzxmc.gw12320.com/uploadFile', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -63,17 +93,23 @@ const uploadPdf = async (byteArray: number[], filename: string = 'signed.pdf') =
|
|||||||
// 获取 SDK 实例
|
// 获取 SDK 实例
|
||||||
export const getUKeySdk = () => {
|
export const getUKeySdk = () => {
|
||||||
if (window.QysUKeySdk) {
|
if (window.QysUKeySdk) {
|
||||||
const sdk = new window.QysUKeySdk({
|
try {
|
||||||
signCb: async function(file) {
|
const sdk = new window.QysUKeySdk({
|
||||||
try {
|
signCb: async function(file) {
|
||||||
uploadPdf(file[0].rawFileData)
|
try {
|
||||||
console.log('签署完成,文件已上传到服务器',file);
|
await uploadPdf(file[0].rawFileData)
|
||||||
} catch (error) {
|
console.log('签署完成,文件已上传到服务器', file);
|
||||||
console.error('文件处理失败:', error)
|
} catch (error) {
|
||||||
|
console.error('文件处理失败:', error)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
})
|
return sdk
|
||||||
return sdk
|
} catch (error) {
|
||||||
|
console.error('创建 SDK 实例失败:', error)
|
||||||
|
return null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user