<script> 接进来的客服浮窗。契约 v1<script src="http://192.168.0.106:8091/widget.js" data-project="demo" defer></script>就这一行,右下角出现客服气泡,点开就能聊天。
签名必须在你自己的后端算(用项目 secret),前端只拿结果:
// 你的后端(Node 示例)—— appSecret 绝不能放前端
const crypto = require('crypto');
const signature = crypto.createHmac('sha256', appSecret).update(`${appKey}|${uid}`).digest('hex');
// 前端拿到 signature 后:
CsWidget.init({ project:'demo', uid:'u_10086', name:'张三', signature, extra:{ vip:'v3' } });
注意:这里为了演示没有传签名(demo 项目没开强制校验)。生产项目请务必传签名。
CsWidget.on('unread', n => { document.title = n ? `(${n}) 我的页面` : '我的页面'; });
CsWidget.on('open', () => console.log('客服面板打开了'));
CsWidget.on('message', m => console.log('收到消息', m));
打开浮窗发一句话,然后抬头看浏览器标签页标题应该会带上未读数。
// Android / Kotlin:与网页完全同一套后端,不用写原生 UI val url = "http://192.168.0.106:8091/full?project=demo&uid=$uid&name=$name&lang=auto&signature=$sig" webView.loadUrl(url)