社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
一.浏览器插件接口技术:浏览器在使用时,常常需要在网页中调用外部程序。例如在网页中播放视频,实际是调用本地的播放器程序,也就是一个外部程序。这个程序被封装成一种插件接口,可以供网站代码中调用。常用的插件形式有 NPAPI, PPAPI和ActiveX。
(1)NPAPI(Netscape Plugin Application Programming Interface) 网景插件应用程序编程接口
NPAPI是当今最流行的插件架构,由网景开发,后Mozilla维护,几乎所有浏览器都支持,不过存在很大的安全隐患,插件可以窃取系统底层权限,发起恶意攻击。
(2)PPAPI(Pepper Plugin API)
2010年,Google在原有网景NPAPI(Netscape Plugin API)基础上开发了新的PPAPI(Pepper Plugin API),将外挂插件全部放到沙盒里运行,具有更高的安全性。2012年Windows、Mac版本的Chrome浏览器先后升级了PPAPI Flash Player。PPAPI的flash相较于NPAPI来讲,内存占用更大,因为全在沙盒里面运行。
(3)ActiveX
ActiveX 是一个开放的集成平台,为开发人员、 用户和 Web生产商提供了一个快速而简便的在 Internet 和 Intranet 创建程序集成和内容的方法。 使用 ActiveX, 可轻松方便的在 Web页中插入 多媒体效果、 交互式对象。
二. Qt中调用插件
1.Qt与ActiveX插件
Qt可以通过QAxwidget来调用本地ActiveX控件,更进一步可以使用Qt中的dumpcpp方法自动生成相关ActiveX插件的调用库函数。
2. QWebkit与自定义插件
QWebkit基于webkit内核,拥有使用自定义插件的功能,具体方法是QWebpage::creatplugin方法。
3.QWebengine与PPAPI插件
Qt5.6之后就不支持QWebkit了,改为使用QWebEngine。QWebengine基于chrome内核,支持PPAPI插件。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!