Aivigo Hướng dẫn sử dụng

Voicebox trên app di động

Mở trang chat độc lập trong WebView của iOS, Android, React Native, Flutter.

Dùng trang chat độc lập:

https://voicebox.aivigo.tech/widget/v1/frame.html?key=vb_xxx&mode=fullscreen

Không đưa danh tính hoặc hash vào URL. Sau khi trang tải xong, gọi window.Voicebox.identify({...}) bằng JavaScript.

  • Sự kiện từ widget gửi về app có dạng {"source":"voicebox","type":"ready|open|close|message|reply|error|handoff|session","data":{…}}.
  • Micro: iOS cần NSMicrophoneUsageDescription trong Info.plist; Android cần quyền RECORD_AUDIO và cấp quyền trong onPermissionRequest.
let cfg = WKWebViewConfiguration()
cfg.allowsInlineMediaPlayback = true
cfg.mediaTypesRequiringUserActionForPlayback = []
cfg.userContentController.add(self, name: "voicebox")   // nhận sự kiện
let web = WKWebView(frame: .zero, configuration: cfg)
web.load(URLRequest(url: URL(string: "https://voicebox.aivigo.tech/widget/v1/frame.html?key=vb_xxx&mode=fullscreen")!))

// trong webView(_:didFinish:)
web.evaluateJavaScript("window.Voicebox.identify({ref:'kh001',name:'An',hash:'\(hashFromServer)'})")

Gửi ngữ cảnh màn hình từ app

window.postMessage({ source: 'voicebox-host', type: 'screen_context', data: { screen_context: { store_id: 'S01' } } }, '*');

Xem Tham số trang & sự kiện.

Muốn tự vẽ giao diện?

Nếu app không dùng WebView, hãy gọi Voicebox REST + SSE. Khi đó cần bật Cho phép app native cho voicebox (liên hệ hỗ trợ nếu chưa có trên Cổng đối tác).

Sửa trang này trên GitLab

Trong trang này