gpt4 book ai didi

javascript - Undefined 不是一个对象(评估 'navigator.permissions.query' )

转载 作者:行者123 更新时间:2023-12-05 02:07:57 24 4
gpt4 key购买 nike

尝试在 iPhone 7 上访问我的网站时出现此错误,银行屏幕为白色(主屏幕加载正常,但在我点击某些内容后我在网络屏幕上看到了这个错误。

我想这就是它所说的:

  useEffect(() => {
navigator.permissions
.query({ name: "microphone" })
.then((permissionStatus) => {
setMicrophonePermissionGranted(permissionStatus.state === "granted");

permissionStatus.onchange = function () {
setMicrophonePermissionGranted(this.state === "granted");
};
});

navigator.permissions.query({ name: "camera" }).then((permissionStatus) => {
setCameraPermissionGranted(permissionStatus.state === "granted");

permissionStatus.onchange = function () {
setCameraPermissionGranted(this.state === "granted");
};
});
}, []);

我该如何解决这个问题?

最佳答案

您需要检查权限 API 的可用性,如果不可用,则查询标准 API。

这是位置示例: Permissions API Navigation API

if ( navigator.permissions && navigator.permissions.query) {
//try permissions APIs first
navigator.permissions.query({ name: 'geolocation' }).then(function(result) {
// Will return ['granted', 'prompt', 'denied']
const permission = result.state;
if ( permission === 'granted' || permission === 'prompt' ) {
_onGetCurrentLocation();
}
});
} else if (navigator.geolocation) {
//then Navigation APIs
_onGetCurrentLocation();
}

function _onGetCurrentLocation () {
navigator.geolocation.getCurrentPosition(function(position) {
//imitate map latlng construct
const marker = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
})
}

关于javascript - Undefined 不是一个对象(评估 'navigator.permissions.query' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61388198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com