gpt4 book ai didi

javascript - JS 中的 getCurrentPosition 在 iOS 上不起作用

转载 作者:可可西里 更新时间:2023-11-01 04:44:52 25 4
gpt4 key购买 nike

我有一个页面包含一个代码,该代码从设备获取当前位置并使用此代码根据该位置加载其他内容:

if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successFunction);
} else {
// Make API call to the GeoIP services
}

它适用于我测试过的所有安卓设备,但在 iOS 和 macOS 上,它不工作。 ifelse 都不是。似乎它停留在获取当前位置。

有什么帮助吗?

最佳答案

如果 iOS 和 macOS 不允许系统不信任您,则不会向您提供用户的位置。所以:

- 首先(可能是你的答案)

它适用于您提供的确切代码仅当主机(又名来源)使用https。这就是由于您对以下答案的评论而未显示权限警报的原因。

请记住,如果您不使用https,它会卡住大约一分钟,然后返回有关身份验证失败的错误。使用 error 检查:

navigator.geolocation.getCurrentPosition(success, error, options)

它会告诉你这样的事情:

[blocked] Access to geolocation was blocked over insecure connection to http://example.com.

提示:您可以在请求位置后刷新页面以跳过等待过程。但不要忘记在检查器中选中保留日志选项。

- 第二:

如果您使用的是 https,请检查您的 Safari 位置设置,它可能以某种方式设置为关闭,您可以在此处更改它:设置 > 隐私 > 定位服务 > Safari。这不是默认选项,但您可能不小心更改了它。因此,如果这是问题所在,请不要担心用户。如果您使用 Chrome 或任何其他第三方浏览器,请前往其设置并检查位置访问权限。默认情况下它不存在,只有在至少需要一次位置时才会出现。

- 第三:

如果您要使用 webView应用程序中加载您的网络,请确保将位置权限说明添加到 info.plist 文件。根据需要添加 NSLocationWhenInUseUsageDescriptionNSLocationAlwaysUsageDescriptionNSLocationUsageDescription

为了完整起见,在iOS13上,你无法获得always权限。但这不是这里的重点,重点是您必须在需要从 GPS 获取位置之前的某个时间获得所需的权限,否则它根本无法工作。

关于javascript - JS 中的 getCurrentPosition 在 iOS 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57130901/

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