AiffJS 介面說明手冊
適用版本:
AiffJS.version = "1.0.19"
依據檔案:aiff.js、aiff.min.js、README.md、原AiffJs SDK 檔案說明.docx
1. 概述
AiffJS 是 Aiff 頁面與 Aile 宿主之間的 JavaScript 介面封裝。Aiff 頁面透過全域物件 AiffJS 呼叫宿主提供的 window.AileAPI 能力,例如初始化、取得目前使用者資料、取得開啟來源、開啟聊天室、傳送訊息、分享內容、取得位置、掃碼、修改標題等。
目前原始碼會在腳本載入後自動執行:
AiffJS._initEvent();
該初始化事件會註冊宿主側通知:
| 宿主事件 | AiffJS 回呼 | 說明 |
|---|---|---|
closeAiff | AiffJS.onCloseWindow(cancelFun) | 宿主要求關閉 Aiff 頁面時觸發 |
aiffEvent | AiffJS.onAiffEvent(args) | 宿主主動傳送給 Aiff 頁面的事件 |
2. 快速開始
<script src="./aiff.min.js"></script>
<script>
AiffJS.init("your-aiff-id").then(function (ok) {
if (!ok) {
return;
}
const profile = AiffJS.getProfile();
const opener = AiffJS.getOpener();
console.log(profile, opener);
});
</script>
使用約定:
- 大多數介面需要先呼叫
AiffJS.init(aiffId)且返回true。 - 若宿主未提供
window.AileAPI,init會返回Promise<false>。 - 部分介面未初始化時返回
null,部分介面返回{ code: "Aiff.NotInit" }。具體以各介面說明為準。 - 返回內容最終由宿主端實現決定,本手冊中的欄位來自舊版說明書及當前原始碼封裝方式。
3. 版本記錄
| 版本 | 日期 | 說明 |
|---|---|---|
| 1.0.1 | 2021-08-30 | 整理 Aiff 說明,並加入通知事件描述 |
| 1.0.2 | 2021-11-23 | 調整 getOpener 返回內容,加入服務號聊天室欄位 |
| 1.0.3 | 2022-03-21 | 加入 openContactChat 等定義 |
| 1.0.4 | 2022-03-22 | 取消前端傳送聯絡人訊息介面 |
| 1.0.5 | 2022-04-21 | 根 據 AiPower 討論調整介面,加入 openBossContactChat、shareTargetPicker |
| 1.0.6 | 2022-06-25 | 新增 openWindow |
| 1.0.7 | 2022-07 | 調整 getClientType,加入客戶端實現介面 |
| 1.0.8 | 2022-08-02 | 加入使用者資訊相關介面和 getRoomStatus |
| 1.0.9 | 2022-08-16 | sendMessage 加入 type 引數,支援 text 和 template |
| 1.0.11 | 2022-09-22 | 加入 getAiffItem |
| 1.0.12 | 2023-02-16 | 加入 scanCode、getCurrentPosition |
| 1.0.13 | - | 加入 shareMessage、sendCmd、openWindow |
| 1.0.14 | - | 加入分享相關介面 |
| 1.0.15 | - | 加入 getNative |
| 1.0.16 | - | 調整 iframe 判斷,並加入 sendData |
| 1.0.17 | - | 修正日誌判斷邏輯 |
| 1.0.18 | - | 新增 subscribeCurrentPosition、startEvent、stopEvent |
| 1.0.19 | 2026-04-22 | 新增 changeAiffTitle,併相容歷史拼寫 changeAiffTilte |
4. 介面總覽與應用支援狀態
支援狀態口徑:目前僅已完成 AileAPP(原 newaile)逐介面整理,依據 AileAPP 宿主橋接實作、模組文件與測試覆蓋標示為 已支援、有限制支援 或 暫不列入支援範圍。AileDesktop 目前可確認有 AIFF 槽位與上下文注入方向,但尚未完成逐介面驗證;AileProAPP、AileProDesktop 也尚未完成逐介面盤點,因此先標示為 待確認,避免把未知狀態誤判為不支援。
狀態說明:
| 狀態 | 說明 |
|---|---|
| 已支援 | 目前產品已有對應宿主能力或測試覆蓋,可作為對外使用口徑 |
| 有限制支援 | 目前產品支援,但受入口、聊天室上下文、權限或 payload 條件限制 |
| 暫不列入支援範圍 | SDK 有介面或歷史相容入口,但目前產品支援矩陣不將其列為可用能力 |
| 待確認 | 尚未完成該產品逐介面驗證;不代表不支援 |
| 分類 | 介面 | 返回值 | 說明 | AileAPP | AileDesktop | AileProAPP | AileProDesktop | 備註 |
|---|---|---|---|---|---|---|---|---|
| 初始化 | init(aiffId) | Promise<boolean> | 初始化 Aiff | 已支援 | 待確認 | 待確認 | 待確認 | |
| 初始化 | getClientType() | string | 取得目前載具型別 | 已支援 | 待確認 | 待確認 | 待確認 | |
| 初始化 | openDev() | void | 開啟宿主開發工具 | 已支援 | 待確認 | 待確認 | 待確認 | |
| 基本資料 | getAuthToken() | string | null | 取得目前鑑權 token | 已支援 | 待確認 | 待確認 | 待確認 | |
| 基本資料 | getAiffConfig() | Object | null | 取得 Aiff 設定 | 已支 援 | 待確認 | 待確認 | 待確認 | |
| 基本資料 | getProfile() | Object | null | 取得目前使用者資料 | 已支援 | 待確認 | 待確認 | 待確認 | |
| 基本資料 | getOpener() | Object | null | 取得目前開啟來源 | 已支援 | 待確認 | 待確認 | 待確認 | |
| 基本資料 | getAiffItem(aiffKey) | Promise<Object> | 取得指定 Aiff 資料 | 已支援 | 待確認 | 待確認 | 待確認 | |
| 聊天室 | openChat(roomId) | Promise<Object | null> | 開啟指定聊天室 | 已支援 | 待確認 | 待確認 | 待確認 | |
| 聊天室 | openUserChat(openId) | Promise<Object | null> | 開啟指定同事聊天室 | 已支援 | 待確認 | 待確認 | 待確認 | 取決於宿主同事聊天室能力 |
| 聊天室 | getUserRooms(openId) | Promise<Object | null> | 取得同事關聯聊天室 | 暫不列入支援範圍 | 待確認 | 待確認 | 待確認 | 目前不列入 AileAPP 對外支援能力 |
| 聊天室 | getAllRooms() | Promise<Object | null> | 取得聊天室列表 | 暫不列入支援範圍 | 待確認 | 待確認 | 待確認 | 目前不列入 AileAPP 對外支援能力 |
| 聊天室 | openContactChat(serviceNumberId, openId) | Promise<Object | null> | 開啟指定服務號下的客戶聊天室 | 已支援 | 待確認 | 待確認 |