当我的网站请求访问其麦克风时,我正在创建警报以向用户提供其他通知。我已经读过Chrome浏览器,如果该网站是通过HTTPS提供的,则除非用户删除该权限,否则不会再次要求用户获得许可。但是,我注意到在我的非HTTPS网站上请求麦克风访问,该权限仍然保存。看来无论权限如何,调用getUserMedia 始终都会显示Chrome警报。
我有没有办法确定用户是否已经授予我的网站权限?如果用户未获得权限或已删除权限,我只希望显示提醒。
window.navigator = window.navigator || {};
navigator.getUserMedia = (navigator.getUserMedia
|| navigator.webkitGetUserMedia
|| navigator.mozGetUserMedia
|| navigator.msGetUserMedia
|| null);
if (navigator.getUserMedia /* && "Site not allowed" */) {
// Show alert.
navigator.getUserMedia(
{
audio: true
},
function(stream) {
// Hide alert.
},
function(error) {
switch (error.name) {
case 'PERMISSION_DENIED':
// Permission denied
break;
case 'NOT_SUPPORTED_ERROR':
// Media not supported
break;
case MANDATORY_UNSATISFIED_ERROR:
// No media tracks of the type specified in the constraints are found.
break;
}
}
);
} else {
console.log('Browser doesn't support getUserMedia.');
}