Qt qml webview gmail.com,其他,未加载或不完整
我正在使用QML网络视图。对于像这样的网站,它似乎工作得很好 intel.com、apple.com、cnn.com、foxnews.com,但是如果我尝试 加载gmail.com或hotmail.com时,它似乎只加载以下html:Qt qml webview gmail.com,其他,未加载或不完整,qt,qml,Qt,Qml,我正在使用QML网络视图。对于像这样的网站,它似乎工作得很好 intel.com、apple.com、cnn.com、foxnews.com,但是如果我尝试 加载gmail.com或hotmail.com时,它似乎只加载以下html: <html><head></head><body></body></html> ==== load finished (未显示其他事件) 有人知道我可能做错了什么吗? 如果我错过了一个设置我
<html><head></head><body></body></html>
==== load finished
(未显示其他事件)
有人知道我可能做错了什么吗?
如果我错过了一个设置我不知道,因为有这么少
有关“设置”的文档(除非其明显)。我们正在使用
4.7.1然而,我确实尝试了4.8.2,得到了相同的结果
谢谢
[编辑]一位同事建议这可能是用户代理问题。我见过
许多关于修改C++版本QWebVIEW的文章,但我没有看到
除非我直接破解Qt源代码,否则从QML端怎么做是可能的。
有人认为这可能是问题所在吗?我会怀疑的,因为gmail.com是有效的
在我的桌面上的其他网络浏览器(Ubuntu11.10)中一切正常
[编辑]我在Qt4.7.1中编译了“浏览器”示例,它在那里也不起作用。
前几天,Qt推出了4.8.3,当我在那里编译“浏览器”时,它(浏览器)工作了。我注意到gmail.com从http:改为https:所以我想可能是这样
因为我们在编译QT时没有使用openssl。我试着编译4.7.1和4.8.3
有了openssl,我的QML问题就没那么幸运了
[SEMI-SOLVED]的QT文档很差(对于初学者来说)。QMLWebView不支持
在他们的文档中告诉您需要安装自己的NetworkAccessManagerFactory。
DeclarativeView有一个engine()(至少在4.7.1中是这样),您可以在其中使用自己的工厂调用setNetworkAccessManagerFactory()。既然我这么做了,它就起作用了
在我的桌面上,但不是在我们的嵌入式linux设备上。虽然它没有以10%的价格“锁定”gmail.com的下载,但它现在失败了。我还必须用openssl编译Qt,
但是,它正在加载我的openssl库(ssl和crypto),但不在
嵌入式设备。很奇怪
[解决]奇怪,但似乎我没有实现QNetworkAccessManager::sslErrors(QNetworkReply*,QList))
信号。这对桌面没有任何影响,但当我使用嵌入式设备时,它就消失了
不起作用,现在起作用了
WebView {
id: webView
focus: true
preferredWidth: webkit.width
preferredHeight: webkit.height
settings.autoLoadImages: true
settings.javascriptEnabled: true
settings.javascriptCanOpenWindows: true
settings.minimumFontSize: 12
settings.defaultFontSize: webkit.fontsize
url: ""
onLoadFinished: {
console.debug(webView.html);
console.debug("==== load finished");
}
}