1

我已经成功地将 Telit GL 865 GSM/GPRS 调制解调器连接到我的 Atmel 微处理器。我的 POC 板正在运行嵌入式 linux,我还交叉编译了 Qt 库(包括 Webkit)并将其转移到板上。

我还可以通过打开 FD(文件描述符)然后执行命令来从 Qt 应用程序读取和写入 AT 命令。

我也能连接到 GPRS,也能得到 HTTP 响应。目前,我正在通过 QWebView 的 setHTML() 函数设置从 AT 命令获得的 HTML。但是通过这种方式,图像不会加载(显然),而且我也无法浏览链接,因为浏览器没有直接访问互联网的权限。那么我的 Qt Webkit 浏览器可以使用我的调制解调器通过 GPRS 直接通信的正确实现是什么?

4

2 回答 2

2

看来您正在应用程序级别构建 TCP/IP 堆栈。通常这是一个内核任务。

WebKit 完全有能力创建 HTTP 响应,但它希望将它们交给内核。具体来说,它通常创建一个 TCP 套接字,连接到 web 服务器的 80 端口,通过套接字发送 HTTP 请求,并从套接字检索 HTTP 响应。

所以,看来你只是缺少一个驱动程序。这与其说是一个编程问题,不如说是一个 Linux 问题。

于 2011-07-25T12:34:44.567 回答
0

您需要为 QWebPages 设置属性。像这样的东西:

QWebSettings * settings=QWebSettings::globalSettings ();
settings->setAttribute(QWebSettings::JavascriptEnabled,true);
settings->setAttribute(QWebSettings::PluginsEnabled,true); 
settings->setAttribute(QWebSettings::LocalContentCanAccessRemoteUrls,true);
settings->setAttribute(QWebSettings::LocalContentCanAccessFileUrls,true);
settings->setAttribute(QWebSettings::LocalStorageEnabled,true);
settings->setAttribute(QWebSettings::AutoLoadImages,true);
settings->setAttribute(QWebSettings::JavascriptCanOpenWindows,true);
settings->setAttribute(QWebSettings::PrintElementBackgrounds,true);

查看QWebSettings 文档以获取更多 Webkit 属性...

UPD:如果您使用 tcp-ip 直接使用 AT 命令而不是驱动程序,那么@MSalters 解释也是您的浏览器工作的先决条件......

于 2011-07-25T12:38:58.063 回答