以下是处理权限请求的核心代码:
// 监听来自 iframe 的消息
window.addEventListener('message', function(event) {
// 验证消息来源(建议添加)
// if (event.origin !== 'YOUR_WEBCHAT_ORIGIN') return;
if (event.data && event.data.type === 'permission_request') {
const { permission } = event.data;
console.log('收到权限请求:', permission);
// 这里可以显示权限请求对话框给用户
// 模拟用户授权
setTimeout(() => {
// 向 iframe 发送权限回调
event.source.postMessage({
type: 'permission_response',
permission: permission,
granted: true // true 表示授予权限,false 表示拒绝
}, '*');
}, 1000);
}
});
// 模拟授予权限
function grantPermission(permission) {
const iframe = document.getElementById('webchatFrame');
iframe.contentWindow.postMessage({
type: 'permission_response',
permission: permission,
granted: true
}, '*');
addLog(`已授予 ${permission} 权限`);
}
// 添加日志
function addLog(message) {
const log = document.getElementById('log');
const timestamp = new Date().toLocaleTimeString();
log.innerHTML += `[${timestamp}] ${message}
`;
log.scrollTop = log.scrollHeight;
}