| 49 | |
| 50 | |
| 51 | class Window(QWebEngineView): |
| 52 | |
| 53 | def __init__(self, *args, **kwargs): |
| 54 | super(Window, self).__init__(*args, **kwargs) |
| 55 | self.resize(800, 600) |
| 56 | |
| 57 | # 首先获取默认的url协议 |
| 58 | h1 = QWebEngineUrlScheme.schemeByName(QByteArray(b'http')) |
| 59 | h2 = QWebEngineUrlScheme.schemeByName(QByteArray(b'https')) |
| 60 | |
| 61 | # 这里需要修改增加本地文件和跨域支持 |
| 62 | CorsEnabled = 0x80 # 5.14才增加 |
| 63 | h1.setFlags(h1.flags() | |
| 64 | QWebEngineUrlScheme.SecureScheme | |
| 65 | QWebEngineUrlScheme.LocalScheme | |
| 66 | QWebEngineUrlScheme.LocalAccessAllowed | |
| 67 | CorsEnabled) |
| 68 | h2.setFlags(h2.flags() | |
| 69 | QWebEngineUrlScheme.SecureScheme | |
| 70 | QWebEngineUrlScheme.LocalScheme | |
| 71 | QWebEngineUrlScheme.LocalAccessAllowed | |
| 72 | CorsEnabled) |
| 73 | |
| 74 | # 安装url拦截器和自定义url协议处理 |
| 75 | de = QWebEngineProfile.defaultProfile() # @UndefinedVariable |
| 76 | de.setRequestInterceptor(RequestInterceptor(self)) |
| 77 | de.installUrlSchemeHandler(QByteArray(b'myurl'), UrlSchemeHandler(self)) |
| 78 | |
| 79 | |
| 80 | if __name__ == '__main__': |