JPassTools API 串接範例
本頁面主要提供 JPassTools 相關 API 的使用方式及注意事項。
不需安裝 Cat。僅需載入對應 js。
html
// 測試環境
<script src="https://public.hare200.com/jpass-tools/v0.0.12/jpass-tools-f2e.beta.umd.cjs"></script>
// 正式環境
<script src="https://public.hare200.com/jpass-tools/v0.0.12/jpass-tools-f2e.umd.cjs"></script>jpass-tools-upgrader
使用 升級 JKF 商業帳號視窗
型別提供
ts
interface JPassToolsUpgraderEl extends HTMLElement {
/** 設定資訊 */
setUpgradeInfo: (payload: ProductUpgradeInfo) => void;
/** 關閉元件 */
close: () => Promise<void>;
}
/** 產品端提供的使用者資訊 */
interface ProductUpgradeInfo {
/** 產品 appId, e.g. jvid, jkforum, avplus, jkface... */
appId: string;
/** JPass 升級 token (jut) */
upgradeToken: string;
/** 顯示的帳號名稱 / 頻道名稱 */
displayName: string;
/** 顯示的帳號頭像 / 頻道頭像 */
avatar: string;
/** 聯絡客服的連結 */
contactUsLink: string;
}
declare global {
interface HTMLElementTagNameMap {
'jpass-tools-upgrader': JPassToolsUpgraderEl;
}
}用例
ts
let el: JPassToolsUpgraderEl | null = null
const openJPassUpgrader = (): void => {
// 1. 生成 jpass-tools-upgrader 元件
el = document.createElement('jpass-tools-upgrader')
// * 可自行設定 z-index
el.style.zIndex = '100'
// 2. 事件監聽綁定
el.addEventListener('jpass:open', () => {
console.log('JPass 升級器已開啟')
})
el.addEventListener('jpass:close', () => {
console.log('JPass 升級器已關閉')
})
el.addEventListener('jpass:complete', ((event: CustomEvent) => {
const { jpassId = '', objectId = '', uid = NaN } = event.detail[0]
console.log('JPass 升級器成功', {
jpassId: jpassId,
objectId: objectId,
uid: uid,
})
}) as EventListener)
el.addEventListener('jpass:error', ((event: CustomEvent) => {
const { code = NaN, message = '' } = event.detail[0]
console.log('JPass 升級器發生錯誤', {
code: code,
message: message,
})
}) as EventListener)
// 3. 掛載元件至畫面上,自動開啟
document.body.appendChild(el)
// 4. 設定升級資訊
el.setUpgradeInfo({
appId: '{{ 產品 appId }}', // jvid, jkforum, avplus, jkface...
upgradeToken: '{{ JPass 升級 token (jut) }}',
displayName: '{{ 顯示的帳號名稱 / 頻道名稱 }}',
avatar: '{{ 顯示的帳號頭像 / 頻道頭像 }}',
contactUsLink: '{{ 聯絡客服的連結 }}',
})
}
// 5. 也可手動關閉彈窗
const close = () => {
el?.close()
}