一个只有一个标签页的简易浏览器
具有以下功能:
- 可以记录浏览记录,可前进后退
- 可以刷新当前网页
- 可以输入网址并且通过Enter键或者右侧的按钮发起导航
- 具有比较人性化的界面
引子
首先,为什么要写这么一个简单的浏览器呢?
这是因为工作使然。工作上正好想要在当前的PC客户端软件里嵌入一个浏览器,可以使用C++代码调用Js,也可以使用Js调用C++代码,这个demo也就相当于这个需求的前导调研了。
参考技术
首先,这个demo来源于SOUI开源界面库。这里我将SOUI的开源库里面的demo中的浏览器给生生的抠了出来,优化了下界面和部分逻辑。
其中,浏览器内核使用的是wke。因为wke足够简单,对于我这种刚了解浏览器内核的人来说,再适合不过了,而且wke的功能也比较强大,编译出来的文件也非常小。
实现步骤
创建一个SOUI界面,书写基本的xml布局。
想要了解SOUI的请点击这里。基本上对于SOUI有一定了解的,这一步都不难,也就不再赘述了。
将wke内核抽象为SOUI的一个窗口浏览器控件类。
这关键的一步,SOUI的demo里面已经完成的非常好了,请参照代码即可。完成了这一步,基本就可以完成网页的显示了。
创建标签页类。
参照SOUI的demo可见。不再赘述。
思路总结
总而言之,我只是站在了两位巨人的肩膀上。一个是SOUI的作者,另一个是wke的作者。后者封装了webkit弄出来了一个小巧强大的浏览器内核,前者将其封装成了界面的一个控件。
学习新东西的最好办法,就是依样画葫芦,做一些自己喜欢的东西,然后改进它,深入底层了解它。
代码分享
想要源代码的同学,可以先配置好SOUI环境,然后下载本人的代码编译即可。项目代码在SingleTab_MyBrowser里获得即可。