集成方法
SDK 下载地址
公共环境
引用
<script type='text/javascript' src='SDK下载地址'></script>
SDK 初始化(非必要)
// SDK初始化
// 参数说明:debug true:打印SDK LOG,false:不打印日志,默认为false
const config = {
debug: false,
};
window.udeskCaseApiClient.init(config);
Demo
下载地址:http://confluence.flyudesk.com/x/f4CiDQ
API
页面初始化完成
- 支持:Android、IOS、PC
- 适用场景:自建选项卡
// 页面初始化成功回调
window.udeskCaseApiClient.on('init', () => {
// 处理结果
});
鉴权
- 支持:Android、IOS、PC
- 适用场景:自建选项卡(注意:调用其它 API 之前必须先鉴权成功)
// 请求参数
const reqData = {
sign: '', // 鉴权token,生成方式参考下面的 sign签名算法
timestamp: '', // 参与鉴权的时间戳
nonce: '', // 参与鉴权的随机数
};
// 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['authenticate'],
onJsApiList: ['ready'],
callback: (data) => {
console.log('--> rsp data:', data);
},
});
// 方式二:
// 鉴权成功回调
window.udeskCaseApiClient.on('ready', () => {
// 处理结果
});
// 鉴权
window.udeskCaseApiClient.call('authenticate', reqData);
const sign = sha256(`${secret}&${key}&${timestamp}&${nonce}`)
参数 |
类型 |
描述 |
secret |
string |
APP Secret |
key |
string |
APP Key |
timestamp |
string |
参与鉴权的时间戳 |
nonce |
string |
参与鉴权的随机数 |
获取鉴权信息
- 支持:Android、IOS、PC
- 适用场景:定制字段
// 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['getAuthentication'],
callback: (data) => {
console.log('--> rsp data:', data);
},
});
// 方式二:
// 鉴权成功回调 (响应参数:rspData 授权信息)
window.udeskCaseApiClient.on('getAuthentication', (rspData) => {
// 处理结果
});
// 鉴权
window.udeskCaseApiClient.call('getAuthentication');
获取用户信息
- 支持:Android、IOS、PC
- 适用场景:自建选项卡
// 响应消息格式
{
id: 1, // ID
email: "demo@test.cn", // 账号
realname: "张三", // 姓名
jobNumber: "123", // 工号
}
// 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['getUserInfo'],
callback: (data) => {
console.log('--> rsp data:', data);
// {"id":1,"realname":"张三","email":"demo@test.cn","jobNumber":"123"}
},
});
// 方式二:
// 获取用户信息回调
window.udeskCaseApiClient.on('getUserInfo', (rspData) => {
// 处理结果
});
// 获取用户信息
window.udeskCaseApiClient.call('getUserInfo');
获取初始化信息
- 支持:Android、IOS、PC
- 适用场景:定制字段
// 响应参数:rspData 初始化信息
{
options: {
objectId: 67, // 对象ID
recordId: 2787269, // 记录ID
user: { // 用户信息
email: "test@h3c.com", // 邮箱
id: "4", // id
jobNumber: "000001" // 工号
}
}
}
// 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['getInitData'],
onJsApiList: ['getInitData', 'initData'],
callback: (data) => {
console.log('--> rsp data:', data);
},
});
// 方式二:
// 获取初始化信息回调-H5
window.udeskCaseApiClient.on("getInitData", (rspData) => {
// 处理结果
});
// 获取初始化信息回调-PC
window.udeskCaseApiClient.on("initData", (rspData) => {
// 处理结果
});
// 获取初始化信息
window.udeskCaseApiClient.call("getInitData");
保存数据
- 支持:Android、IOS、PC
- 适用场景:定制字段
- 注意:如果需要通过系统弹窗的“保存”按钮来保存数据,需要先注册弹窗保存事件,再调用保存接口(调用保存之后,弹窗会关闭,可在此之前进行数据判断等操作)
// 注册弹窗保存事件
window.udeskCaseApiClient.on('onSavedValueData', () => {
// 调用“保存数据”接口
});
// 请求参数:reqData 要保存的数据
const actionData = {};
// 保存数据 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['onSavedValueData'],
params: reqData,
});
// 保存数据 方式二
window.udeskCaseApiClient.call('onSavedValueData', reqData);
跳转到指定应用
- 支持:Android、IOS、PC
- 适用场景:自建选项卡
// 请求参数
const reqData = {
appId: 0, // ServiceGo系统内应用Id
};
// 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['transitionToApply'],
params: reqData,
callback: (data) => {
console.log('--> rsp data:', data);
},
});
// 方式二:
// 跳转成功回调
window.udeskCaseApiClient.on('transitionToApply', (rspData) => {
// 处理结果
});
// 跳转
window.udeskCaseApiClient.call('transitionToApply', reqData);
跳转到指定选项卡
- 支持:Android、IOS、PC
- 适用场景:自建选项卡
// 请求参数
const reqData = {
appId: 0, // ServiceGo系统内应用Id
tabId: 0, // ServiceGo系统内选项卡Id
};
// 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['transitionToTab'],
params: reqData,
callback: (data) => {
console.log('--> rsp data:', data);
},
});
// 方式二:
// 跳转成功回调
window.udeskCaseApiClient.on('transitionToTab', (rspData) => {
// 处理结果
});
// 跳转
window.udeskCaseApiClient.call('transitionToTab', reqData);
跳转到指定对象记录页
- 支持:Android、IOS、PC
- 适用场景:自建选项卡
// 请求参数
const reqData = {
objectId: 0, // ServiceGo系统内对象Id
recordId: 0, // ServiceGo系统内对象记录Id
};
// 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['transitionToRecordView'],
params: reqData,
callback: (data) => {
console.log('--> rsp data:', data);
},
});
// 方式二:
// 跳转成功回调
window.udeskCaseApiClient.on('transitionToRecordView', (rspData) => {
// 处理结果
});
// 跳转
window.udeskCaseApiClient.call('transitionToRecordView', reqData);
扫一扫
// 请求参数
const reqData = {
key: 'uuid', // 请求唯一标识(用于自处理同一页面多个扫码请求)
scanType: [], // ["qrCode", "barCode"],可以指定扫二维码还是条形码(一维码),默认二者都有
};
// 响应参数
const rspData = {
key: 'uuid', // 请求唯一标识(用于自处理同一页面多个扫码请求)
scanType: [], // ["qrCode", "barCode"],可以指定扫二维码还是条形码(一维码),默认二者都有
result: '', // 扫描结果数据
};
// 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['scanCode'],
onJsApiList: ['onScanCode'],
params: reqData,
callback: (data) => {
console.log('--> rsp data:', data);
},
});
// 方式二:
// 扫一扫回调
window.udeskCaseApiClient.on('onScanCode', (rspData) => {
// 处理结果
});
// 扫一扫
window.udeskCaseApiClient.call('scanCode', reqData);
APP 页面销毁
// 销毁回调
window.udeskCaseApiClient.on('onDestroyed', (rspData) => {
// 处理结果
});
基础方法说明
API |
名称 |
说明 |
on |
注册 |
h5 注册监听事件 |
off |
取消注册 |
取消注册监听事件 |
destory |
销毁 |
删除所有注册事件 |
call |
主动调用 |
h5 主动调用方法 |
注册
- 函数名:on
- 函数描述:注册监听事件
- 调用方式:window.udeskCaseApiClient.on(methodName, handler)
- 参数说明:
参数 |
类型 |
说明 |
methodName |
string |
事件名称,参见:ALLOW_NATIVE_APIS |
handler |
function |
回调事件 |
取消注册
- 函数名:off
- 函数描述:取消注册监听事件
- 调用方式:window.udeskCaseApiClient.off(methodName, handler)
- 参数说明:
参数 |
类型 |
说明 |
methodName |
string |
事件名称 |
handler |
function |
要移除的事件处理函数。如果为空,则移除该事件所有的事件处理函数 |
清除
- 函数名:destory
- 函数描述:删除所有注册事件
- 调用方式:window.udeskCaseApiClient.destory()
主动调用
- 函数名:call
- 函数描述:主动调用方法
- 调用方式:window.udeskCaseApiClient.call(methodName, data)
- 参数说明:
参数 |
类型 |
说明 |
methodName |
string |
事件名称 |
data |
object |
调用参数,object(非必填) |
高级调用
- 函数名:udeskCall
- 函数描述:带回调的主动调用方法
- 调用方式:window.udeskCaseApiClient.udeskCall(config)
- 参数说明:config(object 类型)定义如下
参数 |
类型 |
说明 |
jsApiList |
array(必填) |
请求的 api 列表 |
onJsApiList |
array(选填) |
接收响应的 api 列表 |
params |
object(选填) |
请求参数 |
callback |
function(必填) |
响应回调方法 |
注意:使用on
注册事件后,需要在适当的位置使用off
移除事件,否则可能会引起内存泄露或者多余的事件回调!