Web API扩展机制简单比较

在HTML5越来越普及的情况下,Web引擎通过各自的机制提供了不同的Web API(包括但不限于W3C标准API)给Web应用开发者,开发者可以充分利用这些WebAPI开发出跨平台(基于标准API)的或者功能强大(专有API)的Web应用;但是在某些情况下,开发者为了特殊需求需要开发自己的Web API,对于不同的Web引擎平台,均有各自的Web API扩展机制:

1、WebKitGtk

直截了当:通过JavaScriptCore API创建一个JS对象,并将其绑定到对应的JS Context上。

http://webkitgtk.org/reference/webkitgtk/stable/WebKitWebFrame.html#webkit-web-frame-get-global-context
http://webkitgtk.org/reference/webkitgtk/stable/webkitgtk-webkitwebview.html#WebKitWebView-window-object-cleared


2、QtWebKit

QtWebKit Bridge:通过扩展JS环境的方式来访问native对象(即QObject);这种方式实际上利用了GNOME的GObject Introspection/GI对象模型,可以很容易的与JS的动态环境集成,如直接将QObject的属性映射为JS对象的属性;这个应该和firefox的XPCOM机制差不多。

http://qt-project.org/doc/qt-4.8/qtwebkit-bridge.html


3、Android WebView

addJavaScriptInterface:通过调用Webview提供的addJavaScriptInterface函数将对象注入到页面主frame的JS Context中;并可以通过创建的JavaScriptInterface使Java与JavaScript进行交互。

http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object, java.lang.String)


4、CEF3

V8 API:通过对V8引擎API的C++封装实现在C++中操作JS对象。

https://code.google.com/p/chromiumembedded/wiki/JavaScriptIntegration


5、Chrome Extension API

多进程:通过将API操作委托给Browser进程来绕开Renderer进程的沙箱限制;Renderer进程的API调用通过一系列校验后经IPC通信将实际的API调用交由Browser进程实现;实现非常复杂。

https://github.com/crosswalk-project/crosswalk-website/wiki/Overview-of-Chrome-Extension-API-Infrastructure


6、Crosswalk Extension

NPRuntime:基于Chromium,将Renderer进程的API调用委托给Extension进程;类似chromium的extension机制,但是与chromium代码解耦并且添加API更简洁。

https://github.com/crosswalk-project/crosswalk-website/wiki/NPRuntime-Based-WebAPI-Extension-Framework


其他可插拔扩展机制(Plugin)实现比较复杂:

NPAPI、PPAPI、NACL


参考:https://github.com/crosswalk-project/crosswalk-website/wiki/Web-API-Extension-Comparison


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
新秀WebApi接口主要用于其他内嵌api接口的软件、web、app程序进行整合开发使用。 新秀WebApi接口主要功能 1、 可以通过本接口,开发更加强大网络应用软件,快速的调用会员数据、信息数据,与discuz系统无缝整合调用; 2、 充分使用discuz原有的会员框架系统,将会员的注册信息、积分等一系列信息进行外部调用及操作,可使用本接口做一个简单的网络验证系统及软件登录的框架,而不用重新再设计,与discuz系统同步更新、使用; 3、 充分利用discuz原有的信息框架系统,例如门户、论坛、群组、空间等系统进行数据的调用、修改、发布,实现传统web网站与手机app、桌面应用软件互通互联,同步更新; 4、 通过discuz框架,编写的api接口,严格遵循官方安全过滤要求,极大的提高安全性,有力的遏制注入风险; 5、 本接口通过通用的GET、POST数据提交方式与本插件进行数据库交互,采用国际通过的json格式进行输出,这也是针对其他软件开发工具所常备的内置json解析功能,更加的快捷、安全的开发产品; 6、 本插件内置三个传输密钥,可根据不同分工和任务进行分发,取消一个传输密钥,不影响其他人继续开发使用; 7、 本插件对传入参数都进行了入口过滤,对参数不齐、方法不对都将在入口层进行阻止返回,有效的避免了将错误信息传送后直接对数据库操作,产生的不可逆问题; 8、 本插件后期将继续开发,更强大的数据库操作功能接口,并增加自定义功能,让管理员根据自身需求,自己开发api接口,发挥软件的最大效能; 新秀WebApi接口截图 相关阅读 同类推荐:站长常用源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值