权限管理

以下按钮模拟权限请求的处理:

状态日志

实现代码

以下是处理权限请求的核心代码:

// 监听来自 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; }

权限类型说明