集成方法

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

页面初始化完成

// 页面初始化成功回调
window.udeskCaseApiClient.on('init', () => {
    // 处理结果
});

鉴权

// 请求参数
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 参与鉴权的随机数

获取鉴权信息

// 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
    jsApiList: ['getAuthentication'],
    callback: (data) => {
        console.log('--> rsp data:', data);
    },
});

// 方式二:
// 鉴权成功回调 (响应参数:rspData 授权信息)
window.udeskCaseApiClient.on('getAuthentication', (rspData) => {
    // 处理结果
});
// 鉴权
window.udeskCaseApiClient.call('getAuthentication');

获取用户信息

// 响应消息格式
{
    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');

获取初始化信息

// 响应参数: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");

保存数据

// 注册弹窗保存事件
window.udeskCaseApiClient.on('onSavedValueData', () => {
    // 调用“保存数据”接口
});

// 请求参数:reqData 要保存的数据
const actionData = {};

// 保存数据 方式一(推荐):
window.udeskCaseApiClient.udeskCall({
    jsApiList: ['onSavedValueData'],
    params: reqData,
});
// 保存数据 方式二
window.udeskCaseApiClient.call('onSavedValueData', reqData);

跳转到指定应用

// 请求参数
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);

跳转到指定选项卡

// 请求参数
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);

跳转到指定对象记录页

// 请求参数
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 主动调用方法

注册

参数 类型 说明
methodName string 事件名称,参见:ALLOW_NATIVE_APIS
handler function 回调事件

取消注册

参数 类型 说明
methodName string 事件名称
handler function 要移除的事件处理函数。如果为空,则移除该事件所有的事件处理函数

清除

主动调用

参数 类型 说明
methodName string 事件名称
data object 调用参数,object(非必填)

高级调用

参数 类型 说明
jsApiList array(必填) 请求的 api 列表
onJsApiList array(选填) 接收响应的 api 列表
params object(选填) 请求参数
callback function(必填) 响应回调方法

注意:使用on注册事件后,需要在适当的位置使用off移除事件,否则可能会引起内存泄露或者多余的事件回调!