1

我正在用 Python 和 PyQt5 制作一个网络浏览器,我想在我的网络浏览器中启用 allowGeolocationOnInsecureOrigins,这样我就可以通过 Google Geo Location API 访问用户位置。

代码

self.browser = QWebEngineView()
self.browser.allowGeolocationOnInsecureOrigins(1) 

错误

self.browser.allowGeolocationOnInsecureOrigins(1)
AttributeError: 'QWebEngineView' object has no attribute 'allowGeolocationOnInsecureOrigins'
4

1 回答 1

3

枚举 QWebEngineSettings::WebAttribute

QWebEngineSettings::AllowWindowActivationFromJavaScript 从 Qt 5.7 开始,只有 HTTPS 等安全源能够请求地理定位功能。这提供了一个覆盖以允许非安全源再次访问地理位置。默认禁用。(在 Qt 5.9 中添加)

import sys
from PyQt5.QtCore    import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings

app = QApplication(sys.argv)

browser = QWebEngineView()
browser.page().settings().setAttribute(                            # <---
    QWebEngineSettings.AllowGeolocationOnInsecureOrigins, True)    # <---

browser.load(QUrl("https://doc.qt.io/qt-5/qwebenginesettings.html#WebAttribute-enum"))
browser.show()

sys.exit(app.exec_())

在此处输入图像描述

于 2019-02-28T13:17:00.453 回答