QT QWebEngineView与QWebChannel结合加载高德地图问题

酷黑9583 2018-10-16 01:46:13
之前用的百度地图没啥问题,换成高德以后会出现如下报错:
[9168:9152:1016/120026.484:FATAL:quota_manager.cc(958)] Check failed: origin == origin.GetOrigin().
Backtrace:
GetHandleVerifier [0x0000000181872931+364865]
QWebEngineUrlSchemeHandler::_q_destroyedUrlSchemeHandler [0x00000001817606A1+3601]
QtWebEngineCore::BrowserContextAdapter::httpCacheMaxSize [0x0000000183E5C10B+495051]
QtWebEngineCore::BrowserContextAdapter::httpCacheMaxSize [0x0000000183DE7A5F+18207]
IsSandboxedProcess [0x000000018328207C+1624684]
QtWebEngineCore::BrowserContextAdapter::httpCacheMaxSize [0x0000000183DE63AD+12397]
QtWebEngineCore::BrowserContextAdapter::httpCacheMaxSize [0x0000000183DE6953+13843]
QtWebEngineCore::BrowserContextAdapter::httpCacheMaxSize [0x0000000183DE7F13+19411]
GetHandleVerifier [0x000000018186CB69+340857]
GetHandleVerifier [0x000000018189C053+534627]
QWebEngineUrlSchemeHandler::_q_destroyedUrlSchemeHandler [0x00000001817ADD9F+320783]
QWebEngineUrlSchemeHandler::_q_destroyedUrlSchemeHandler [0x00000001817ABCEC+312412]
QWebEngineUrlSchemeHandler::_q_destroyedUrlSchemeHandler [0x00000001817AC322+314002]
GetHandleVerifier [0x000000018189E297+543399]
GetHandleVerifier [0x000000018189F60D+548381]
QWebEngineUrlSchemeHandler::_q_destroyedUrlSchemeHandler [0x00000001817AD9C7+319799]
QWebEngineUrlSchemeHandler::_q_destroyedUrlSchemeHandler [0x00000001817D6FFD+489325]
QWebEngineUrlSchemeHandler::_q_destroyedUrlSchemeHandler [0x00000001817DE0E5+518229]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x000000018071EC8E+4798302]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001807200C4+4803476]
QWebEngineUrlSchemeHandler::_q_destroyedUrlSchemeHandler [0x00000001817DF606+523638]
QWebEngineUrlSchemeHandler::_q_destroyedUrlSchemeHandler [0x0000000181773B31+82593]
BaseThreadInitThunk [0x0000000076EA59CD+13]
RtlUserThreadStart [0x00000000770DA561+33]

===================================================================
我改了半天,发现问题在于高德提供的URL,只要有<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.10&key=您申请的key值"></script> 这句话就会出现这个错误。这怎么办,这不就没法用了吗,请各位大神看看这是什么情况。
Debug状态下,按F5继续走,也能正常走,地图标记啊这类的也有。但是一刷新地图就会出现这个问题,比如放大地图等操作。release下直接崩。
而且神奇的是我单独把WEB引擎这块拿出来新建一个工程就没这个问题。我实在是没查出来是什么原因造成的。
...全文
1054 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
酷黑9583 2018-10-17
  • 打赏
  • 举报
回复
所以我理解的,出现Check failed: origin == origin.GetOrigin(). 这种错误,一般都不是错误,应该是有某种之前的残留。
酷黑9583 2018-10-17
  • 打赏
  • 举报
回复
诶,新建工程,把相关WEB代码移出来,没有问题。
然后我又把现有工程里面的WEB相关代码注释掉,重新写了一遍。
没问题了就。。。。。。。。问题了就。。。题了就。。。。了就。。。就。。。
之前怎么重新构建,都不行,这狗血问题。
酷黑9583 2018-10-17
  • 打赏
  • 举报
回复
额,刚才确定发现问题出现在,引用URL时地址用的是QT工程中的RESOURCES中的地址qrc:/index.html。它会编译成类似名字叫做qrc_res.cpp,的文件,里面会把源文件转换成16进制数(我也不知道他怎么转换的)。但现在看来问题出现在这里,我把这个地址改成相对路径或者绝对路径,就没有问题,而且百度地图的URL也没有问题。那么看来问题在于,应该是高德URL中存在某个特殊字符,致使QT这种转换出现了问题。这样导致一引用高德URL就报错。用路径方式访问,一点问题没有!

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧