Skip to content

JKTalk API 串接範例

本頁面主要提供 JKTalk 相關 API 的使用方式及注意事項。

請先依照 範例 - Cat 的方式實作 useCat.ts 後使用。

initMessageButton

按鈕在建立之後,會自動更新未讀訊息的數量

渲染 JKTalk 打開訊息按鈕

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

type MessengerButtonConfig = {
    isSimple?: boolean;
    isMobile?: boolean;
}

const initMessageButton = (targetContainer: HTMLElement, btnConfig?: MessengerButtonConfig) => {
  const messageBtn = jktalk().initMessageButton(targetContainer, btnConfig)

  // 可以手動設定成 mobile 或 simple 模式,改成 false 則可以關閉 mobile 或 simple 模式
  // simple 模式通常用於桌機模式的側邊欄縮小時
  // mobile 模式通常用於手機瀏覽器
  messageBtn.setSimple(true)
  messageBtn.setMobile(true)
}

initFriendStatusButton

渲染 JKTalk 好友按鈕

ts
import { useCat } from '@/composable/useCat'
import type { InteractiveFriendButtonConfig } from '@lctech-tw/f2e-cat'


const { jktalk } = useCat()

const initFriendStatusButton = (targetContainer: HTMLElement, btnConfig: InteractiveFriendButtonConfig) => {
  jktalk().initFriendStatusButton(targetContainer, btnConfig)
}

initProductInfoButton

渲染 JKTalk 產品行銷按鈕

ts
import { useCat } from '@/composable/useCat'
import type { ProductInfoButtonConfig } from '@lctech-tw/f2e-cat'

const { jktalk } = useCat()

const initProductInfoButton = (targetContainer: HTMLElement, btnConfig: ProductInfoButtonConfig) => {
  jktalk().initProductInfoButton(targetContainer, btnConfig)
}

initActionButton

渲染 JKTalk 動作按鈕,可以自定義按鈕文字以及點擊後觸發的行為

ts
import { useCat } from '@/composable/useCat'
import type { ActionButtonConfig } from '@lctech-tw/f2e-cat'

const { jktalk } = useCat()

const initActionButton = (targetContainer: HTMLElement, btnConfig: ActionButtonConfig) => {
  jktalk().initActionButton(targetContainer, btnConfig)
}

openTalk

開啟 JKTalk 聊天視窗

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

const openTalk = () => {
  jktalk().openTalk()
}

logoutTalk

登出後就無法打開 JKTalk 視窗,直到下次成功登入之後才能打開 JKTalk 視窗

登出 JKTalk 聊天視窗

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

const logoutTalk = () => {
  jktalk().logoutTalk()
}

closeTalk

關閉 JKTalk 聊天視窗

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

const closeTalk = () => {
  jktalk().closeTalk()
}

sendMessageToUser

傳送訊息給特定使用者 by uid,並開啟 JKTalk 聊天視窗

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

const sendMessageToUser = (huid: string) => {
  jktalk().sendMessageToUser(huid)
}

goPreviousStep

回到上一步,若沒有上一步則會關閉 JKTalk 聊天視窗

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

const goPreviousStep = () => {
  jktalk().goPreviousStep()
}

goToSpecificPage

開啟特定頁面:聊天室列表、好友列表、一對一聊天室

ts
import { useCat } from '@/composable/useCat'
import type { SpecificPageParam } from '@lctech-tw/f2e-cat'

const { jktalk } = useCat()

const goToSpecificPage = (param: SpecificPageParam) => {
  jktalk().goToSpecificPage(param)
}

cleanSearchText

清除好友列表的查詢欄位的輸入

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

const cleanSearchText = () => {
  jktalk().cleanSearchText()
}

handleHeaderMenuShow

控制 JKTalk 聊天視窗 頂部的菜單顯示與否 (若沒傳值則會依照當前菜單狀態決定開啟或關閉)

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

const handleHeaderMenuShow = (isOpen?: boolean) => {
  jktalk().handleHeaderMenuShow(isOpen)
}

closeSelectMode

關閉選取動作 (僅對好友列表、聊天室列表並且進行選取動作時有作用)

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

const closeSelectMode = () => {
  jktalk().closeSelectMode()
}

onLoad

設定 JKTalk 聊天視窗 完成讀取時觸發的 callback

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

jktalk().onLoad(() => {
    console.log('JKTalk on load')
})

onOpen

設定 JKTalk 聊天視窗 開啟時觸發的 callback

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

jktalk().onOpen(() => {
    console.log('JKTalk onOpen')
})

onClose

設定 JKTalk 聊天視窗 關閉時觸發的 callback

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

jktalk().onClose(() => {
    console.log('JKTalk onClose')
})

onNotReadCountUpdate

設定 JKTalk 聊天視窗 未讀訊息數量更新時觸發的 callback

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

jktalk().onNotReadCountUpdate((count: number) => {
    console.log(`JKTalk onNotReadCountUpdate ${count}`)
})

onUnread

設定 JKTalk 聊天視窗 收到新訊息時觸發的 callback

ts
import { useCat } from '@/composable/useCat'
import type { UnreadParam } from '@lctech-tw/f2e-cat'

const { jktalk } = useCat()

jktalk().onUnread((payload: UnreadParam) => {
    console.log(payload, 'JKTalk onUnread')
})

load

產品端 RD 不需執行,此為 Data4 開發者使用

載入 JKTalk 相關 js 以及建立 js instance

ts
import { useCat } from '@/composable/useCat'

const { jktalk } = useCat()

const load = async () => {
  await jktalk().load()
}