我使用IFrame将视频聊天嵌入到我的网站中。
<Iframe
url={"https://video.com"}
width="100%"
height="450px"
id="myId"
display="initial"
position="relative"
allow="fullscreen; camera; microphone"
className="single-room__chat"
/>
它获得了所需的所有权限。
几天来它运行良好,所以我知道代码是正确的。
我已经开始听权限授予条件来限制应用程序中的其他内容,因此我已经删除了对我的公共网站和本地主机的所有授予的权限。现在,在进行更改之后,我可以再次授予摄像头许可,但麦克风却没有。它甚至都不问我。嵌入式站点只是说它无法访问麦克风(这是我授予权限之前通常所说的话。
我已经从Chrome的历史记录中清除了所有本地主机和公共站点的数据。 我什至想要嵌入式网站,并确保我在其中授予了权限。 没有任何帮助。
如果没有要求我授予网站许可,我该如何打电话给Chrome? 我可以编程获得权限提示显示的内容吗?
这是我正在使用的新代码,但是即使禁用,我仍然会遇到此问题:
useEffect(() => {
navigator.permissions
.query({ name: "microphone" })
.then((permissionStatus) => {
console.log("minemicrophone", permissionStatus.state); // granted, denied, prompt
permissionStatus.onchange = function () {
console.log("minemicrophone", "Permission changed to " + this.state);
if (this.state === "granted") setMicrophonePermissionGranted(true);
};
});
navigator.permissions.query({ name: "camera" }).then((permissionStatus) => {
console.log("minecamera", permissionStatus.state); // granted, denied, prompt
permissionStatus.onchange = function () {
console.log("minecamera", "Permission changed to " + this.state);
if (this.state === "granted") setCameraPermissionGranted(true);
};
});
},[]);