2010-05-28 34 views
4

我正在将WebKit(通过Qt)集成到应用程序中。我不希望WebKit通过URL检索脚本,CSS文件和图像,而是希望我的应用程序提供它们(例如从数据库中检索)。如何从非URL源加载脚本,样式和图像?

例如,“常规”网页可以包含本文标签:

<IMG src="photos/album1/123456.jpg"> 

相反的WebKit获取从服务器或文件系统这个形象,我宁愿某种回调,让我的应用程序提供这个图像。

我该如何做到这一点?

回答

2

也许这有点矫枉过正,但也许它可以为你工作。

只需让您的应用程序充当HTTP服务器即可。然后,你可以有路径是这样的:

<IMG src="http://localhost:73617/photos/album1/123456.jpg"> 

其中73617是一个随机端口,你可以让你的应用程序侦听其他端口。然后,当您的应用程序检索到图像的请求时,它会从您想要的位置获取它。它仍然涉及一台服务器,但至少您可以完全控制从哪里获取资源。

因此,WebKit会在图像中看到url,发送一个请求,你的App获取请求,读取资源,返回资源。所以基本上你仍然从你的应用中获得它。

希望这会有所帮助。

+0

谢谢。我想到了localhost,但希望能有一个更简单的方法。我如何实现我的服务器?这仅仅是创建套接字和服务请求的问题吗? – 2010-05-28 21:34:32

+1

事实上,它只是通过创建套接字来监听特定端口的问题。 你也需要实现HTTP协议。当然不是一切。你需要实现GET命令,可能是HEAD,就是这样。不应该花很长时间。 你只需要解析HTTP命令并返回适当的资源+头文件。幸运的是,HTTP协议上有很多文档,所以你应该没有问题。 – vanneto 2010-05-28 22:36:42