webkit浏览器本地扩展(本人菜鸟求源码)

sxiang2007 发布于 2012/11/15 16:55
阅读 1K+
收藏 0
 WebKit本地js扩展方法 
  1) 在WebKit源码路径下的WebCore/page/ 下DOMWindow.cpp、DOMWindow.h、DOMWindow.idl添加PlayTool类: DOMWindow.h中添加PlayTools类,以及类的函数指针 playtools(),以及类的对象m_PlayTools; DOMWindow.cpp中添加PlayTools类的函数指针playtools()的实现:在DOMWindow::clear()中添加PlayTools对象的disconnectFrame()函数; DOMWindow.idl中添加PlayTool,格式如readonly attribute PlayTools PlayTools。 
  2) 在WebCore/page/ 下创建PlayTools.cpp、PlayTools.h、PlayTools.idl: PlayTools.idl中添加PlayTools接口interface PlayTools {},在接口中定义要使用的接口函数,如测试函数 [DoNotCheckDomainSecurity] int debug(in DOMString infor)、本地读取函数等。PlayTools.h中,定义新添加的接口函数; PlayTools.cpp中,实现新添加的接口函数。 
  3) 实现PlayTools类中成员函数,成员函数 的实现可以直接在PlayTools.cpp中实现,但为了修改实现函数时不重新编译浏览器,所以现在实现函数与浏览器分离,采取第三方库的形式,在PlayTools.cpp用dlopen导入第三方库,在WebCore/page/添加 WebKit_PlayTools.h,在WebKit_PlayTools.h 中PlayTools接口函数指针定义。 
  4) 在第三方库中实现类中成员函数。需要WebCore/page/ 中的WebKit_PlayTools.h文件,新建WebKit_PlayTools.c、PlaylFile.h、PlayFile.c。在WebKit_PlayTools.c初始化接口函数指针,使其指向对应的实现函数。在PlaylFile.h中定义本地操作的实现函数,如:int createPlaylHtmlFile(char* dpath)、 int getPlayPath(char* path)。在PlayFile.c中实现所有本地操作的实现函数,如:调用播放器,播控等。将WebKit_PlayTools.h、 WebKit_PlayTools.c、PlayFile.h、PlayFile.c编成动态库,动态库名称为PlayTools.cpp中的dlopen导入的库名。 
  5)修改编译文件,将PlayTools.cpp和 PlayTools.h添加到CmakeList.txt,编译浏览器(即调试方便,可先编译PC版本的浏览器)。 
  6) 测试本地JavaScript扩展接口:编写简单的测试网页,JS中直接调用接口函数:PlayTools.debug("test")来确认本地JavaScript扩展正确与否。 
  7) 编写本地Html网页,进行相应的操作。 
  本人菜鸟,求源码实现下面的例子
  以调用播放器并播控为例: 
  首先对基于Webkit内核的浏览器,进行JavaScript本地扩展,添加播放器操作接口,如调用播放器、暂停、播放、恢复、快进、快退、下一个、调节音量、静音、退出等,添加完接口后正确编译浏览器。然后编写用于调用播放器以及进行播控的Html页面,相关操作上使用本地扩展的JS的API。 
  确保设备上已经有播放器应用程序之后,通过浏览器,打开本地播放显示页面,传递本地视频文件或者网络视频文件路径,调用播放器的open接口,播放器启动,播放显示页面跳转到透明页,该透明页是上一步所写的播控页。在JS中通过键值映射来调用播控函数,如暂停、播放、恢复、快进、快退、下一个、调节音量、静音、退出等。这样可以通过浏览器对播放器进行操控。如此便可以简易、快速、有效的对播放器操作管理。

以下是问题补充:

@sxiang2007:基于Qt (2012/11/15 16:57)
加载中
返回顶部
顶部