Как включить allowGeolocationOnInsecureOrigins в python и QtWebEngine - PullRequest
0 голосов
/ 28 февраля 2019

Я создаю веб-браузер на 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'

1 Ответ

0 голосов
/ 28 февраля 2019

enum 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_())

enter image description here

...