| 85 | |
| 86 | |
| 87 | class Window(QWebEngineView): |
| 88 | |
| 89 | def __init__(self, *args, **kwargs): |
| 90 | super(Window, self).__init__(*args, **kwargs) |
| 91 | self.resize(800, 600) |
| 92 | profile = QWebEngineProfile.defaultProfile() |
| 93 | |
| 94 | # 首先获取默认的url协议 |
| 95 | o_http = QWebEngineUrlScheme.schemeByName(QByteArray(b'http')) |
| 96 | o_https = QWebEngineUrlScheme.schemeByName(QByteArray(b'https')) |
| 97 | print('scheme:', o_http, o_https) |
| 98 | |
| 99 | # 这里需要修改增加本地文件和跨域支持 |
| 100 | CorsEnabled = 0x80 # 5.14才增加 |
| 101 | o_http.setFlags(o_http.flags() | |
| 102 | QWebEngineUrlScheme.SecureScheme | |
| 103 | QWebEngineUrlScheme.LocalScheme | |
| 104 | QWebEngineUrlScheme.LocalAccessAllowed | |
| 105 | CorsEnabled) |
| 106 | o_https.setFlags(o_https.flags() | |
| 107 | QWebEngineUrlScheme.SecureScheme | |
| 108 | QWebEngineUrlScheme.LocalScheme | |
| 109 | QWebEngineUrlScheme.LocalAccessAllowed | |
| 110 | CorsEnabled) |
| 111 | |
| 112 | # 安装url拦截器和自定义url协议处理 |
| 113 | de = QWebEngineProfile.defaultProfile() # @UndefinedVariable |
| 114 | de.setRequestInterceptor(RequestInterceptor(self)) |
| 115 | self.urlSchemeHandler = UrlSchemeHandler(self) |
| 116 | de.installUrlSchemeHandler(QByteArray(b'myurl'), self.urlSchemeHandler) # for http |
| 117 | de.installUrlSchemeHandler(QByteArray(b'myurls'), self.urlSchemeHandler) # for https |
| 118 | |
| 119 | |
| 120 | if __name__ == '__main__': |