WebEngine 组件地图示例[#]
演示了如何处理地理位置请求。
地图演示了如何处理从QWebEnginePage
发起的地理位置请求。
地理位置 API 是一个 JavaScript API,web 应用可以使用它来确定用户的物理位置,例如在地图上显示。由于 Qt WebEngine 依赖于 Qt Positioning 模块来驱动此 API,因此需要为目标平台提供一个可行的位置后端。
为了避免意外将位置信息发送给第三方,地理位置请求默认被拒绝。此示例演示了应用程序必须采取的步骤以开始接收这些请求。
注意
在 Windows 11 上,启用设置以允许应用程序访问 Windows 位置服务。在设置应用下,选择“隐私与安全”>“位置”,然后启用“位置服务”、“允许应用访问您的位置”和“允许桌面应用访问您的位置”。
运行示例[#]
要从 Qt Creator 运行示例,打开欢迎模式并从示例中选择示例。有关更多信息,请访问《构建和运行示例》。
代码[#]
示例程序由一个继承自 QMainWindow 的单一类 MainWindow
组成
在构造函数中,我们首先设置 QWebEngineView
为中央小部件
然后我们将 lambda 函数连接到 featurePermissionRequested
信号
每当网页请求使用某些功能或设备时,包括但不限于位置服务、音频捕获设备或鼠标锁定等,都会发射此信号。在此示例中,我们仅处理位置服务的请求。
现在是我们请求用户许可的部分
请注意,问题中包括网站 URI 的主机部分(securityOrigin
),以告知用户确切哪个网站将接收他们的位置数据。
我们使用 setFeaturePermission
方法将用户的回答传达给网页。
最后,我们请求 QWebEnginePage
加载可能希望使用位置服务的网页