統合方法
SDK ダウンロードURL
パブリック環境
参照
<script type='text/javascript' src='SDKダウンロードURL'></script>
SDK 初期化(任意)
// SDK初期化
// パラメータ説明:debug true:SDKログを出力、false:ログを出力しない、デフォルトはfalse
const config = {
debug: false,
};
window.udeskCaseApiClient.init(config);
デモ
ダウンロードURL:http://confluence.flyudesk.com/x/f4CiDQ
API
ページ初期化完了
- 対応:Android、IOS、PC
- 適用シナリオ:カスタムタブ
// ページ初期化成功コールバック
window.udeskCaseApiClient.on('init', () => {
// 結果処理
});
認証
- 対応:Android、IOS、PC
- 適用シナリオ:カスタムタブ(注意:他のAPIを呼び出す前に、認証が成功している必要があります)
// リクエストパラメータ
const reqData = {
sign: '', // 認証トークン、生成方法は以下のsign署名アルゴリズムを参照
timestamp: '', // 認証に使用するタイムスタンプ
nonce: '', // 認証に使用するランダム数
};
// 方法一(推奨):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['authenticate'],
onJsApiList: ['ready'],
callback: (data) => {
console.log('--> レスポンスデータ:', 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
- 適用シナリオ:カスタムフィールド
// 方法1(推奨):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['getAuthentication'],
callback: (data) => {
console.log('--> レスポンスデータ:', data);
},
});
// 方法2:
// 認証成功コールバック (レスポンスパラメータ:rspData 認証情報)
window.udeskCaseApiClient.on('getAuthentication', (rspData) => {
// 結果を処理
});
// 認証
window.udeskCaseApiClient.call('getAuthentication');
ユーザー情報の取得
- 対応:Android、iOS、PC
- 適用シナリオ:自建タブ
// レスポンスメッセージ形式
{
id: 1, // ID
email: "demo@test.cn", // アカウント
realname: "張三", // 氏名
jobNumber: "123", // 社員番号
}
// 方法1(推奨):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['getUserInfo'],
callback: (data) => {
console.log('--> レスポンスデータ:', data);
// {"id":1,"realname":"張三","email":"demo@test.cn","jobNumber":"123"}
},
});
// 方法2:
// ユーザー情報取得コールバック
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" // 社員番号
}
}
}
// 方法1(推奨):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['getInitData'],
onJsApiList: ['getInitData', 'initData'],
callback: (data) => {
console.log('--> レスポンスデータ:', data);
},
});
// 方法2:
// 初期化情報取得コールバック-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 = {};
// データを保存 方法1(推奨):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['onSavedValueData'],
params: reqData,
});
// データを保存 方法2
window.udeskCaseApiClient.call('onSavedValueData', reqData);
指定アプリケーションに遷移
- 対応:Android、IOS、PC
- 適用シナリオ:自建タブ
// リクエストパラメータ
const reqData = {
appId: 0, // ServiceGoシステム内のアプリケーションID
};
// 方法1(推奨):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['transitionToApply'],
params: reqData,
callback: (data) => {
console.log('--> レスポンスデータ:', data);
},
});
// 方法2:
// 遷移成功コールバック
window.udeskCaseApiClient.on('transitionToApply', (rspData) => {
// 結果を処理
});
// 遷移
window.udeskCaseApiClient.call('transitionToApply', reqData);
指定タブに遷移
- 対応:Android、IOS、PC
- 適用シナリオ:自建タブ
// リクエストパラメータ
const reqData = {
appId: 0, // ServiceGoシステム内のアプリケーションID
tabId: 0, // ServiceGoシステム内のタブID
};
// 方法1(推奨):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['transitionToTab'],
params: reqData,
callback: (data) => {
console.log('--> レスポンスデータ:', data);
},
});
// 方法2:
// 遷移成功コールバック
window.udeskCaseApiClient.on('transitionToTab', (rspData) => {
// 結果を処理
});
// 遷移
window.udeskCaseApiClient.call('transitionToTab', reqData);
指定オブジェクトレコードページに遷移
- 対応:Android、IOS、PC
- 適用シナリオ:自建タブ
// リクエストパラメータ
const reqData = {
objectId: 0, // ServiceGoシステム内のオブジェクトID
recordId: 0, // ServiceGoシステム内のオブジェクトレコードID
};
// 方法1(推奨):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['transitionToRecordView'],
params: reqData,
callback: (data) => {
console.log('--> レスポンスデータ:', data);
},
});
// 方法2:
// 遷移成功コールバック
window.udeskCaseApiClient.on('transitionToRecordView', (rspData) => {
// 結果を処理
});
// 遷移
window.udeskCaseApiClient.call('transitionToRecordView', reqData);
スキャン
// リクエストパラメータ
const reqData = {
key: 'uuid', // リクエストの一意識別子(同一ページ内の複数スキャンリクエストを自処理するため)
scanType: [], // ["qrCode", "barCode"]、QRコードまたはバーコード(一次元コード)のどちらをスキャンするか指定可能。デフォルトは両方。
};
// レスポンスパラメータ
const rspData = {
key: 'uuid', // リクエストの一意識別子(同一ページ内の複数スキャンリクエストを自処理するため)
scanType: [], // ["qrCode", "barCode"]、QRコードまたはバーコード(一次元コード)のどちらをスキャンするか指定可能。デフォルトは両方。
result: '', // スキャン結果データ
};
// 方法1(推奨):
window.udeskCaseApiClient.udeskCall({
jsApiList: ['scanCode'],
onJsApiList: ['onScanCode'],
params: reqData,
callback: (data) => {
console.log('--> レスポンスデータ:', data);
},
});
// 方法2:
// スキャンコールバック
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を使用してイベントを削除する必要があります。そうしないと、メモリリークや不要なイベントコールバックが発生する可能性があります!