iOS 上的 navigator.permissions.query
Posted
技术标签:
【中文标题】iOS 上的 navigator.permissions.query【英文标题】:navigator.permissions.query on iOS 【发布时间】:2019-11-17 19:17:02 【问题描述】:我有密码
navigator.permissions.query(name:'geolocation').then(function(result)
if (result.state === 'granted')
getLocation();
else if (result.state === 'prompt')
console.log('не решено');
else
getLocation();
// Don't do anything if the permission was denied.
);
如果用户获得地理定位权限 - 加载块,如果没有 - 在块中我有一个按钮“获得地理定位权限”。它适用于 android,但 ios 不支持navigator.permissions.query
。如何在 iOS 中检查未使用getCurrentPosition
页面加载的许可?
【问题讨论】:
***.com/questions/52784495/… 我看到了这个,但 Cordova 诊断插件是用于应用程序的,而不是用于 Web 的,不是吗?第二种方式 getCurrentPosition 将在页面加载后显示询问( 【参考方案1】:您可以使用navigator.geolocation
获取一个Gelocation 对象,该对象具有getCurrentPosition()
方法
此方法用于访问位置信息,这样做时浏览器会要求用户授予权限。
getCurrentPosition
方法至少需要一个参数,该参数是一个回调函数,它将GelocationPosition
对象作为其唯一的输入参数。
这个回调函数只有在用户授予权限的情况下才会被调用,这样你就可以知道用户是否拒绝了权限。
这是一个例子:
navigator.geolocation.getCurrentPosition(
position =>
// this function is called only if the user grant permission so here you can handle the granted state
,
error =>
// this function is called if the user denied permission or some other errors occurs
);
“position”是一个GelocationPosition
对象,它可以让你也知道坐标,“error”是一个GelocationPositionError
,要知道发生了哪个错误,你可以使用error.message
这里有一些有用的content。
【讨论】:
以上是关于iOS 上的 navigator.permissions.query的主要内容,如果未能解决你的问题,请参考以下文章
iOS - iOS 上的以下 LAContext 错误日志是啥意思?
iOS 14 上的 UICollectionView 列表布局问题
iOS 14 上的 NSNumberFormatter 错误