android 上 webkit js 扩展之全局本地对象实现步骤
来源:互联网 发布:php流媒体服务器搭建 编辑:程序博客网 时间:2024/06/05 19:47
原文出处: csdn lidp http://blog.csdn.net/perfectpdl
最近在做广电项目,要求根据规范做浏览器端javascript扩展。android本身应用层提供了扩展方法,但是这可恶的规范导致应用层根本不可行,只好在webkit引擎里面做。。。
android 上编写 浏览器插件有三种方式,
1. app 层,通过android framwork 层提供的 封装扩展,优劣:简单,有局限性
2. 通过 NPAPI 方式, 在 webkit上 通过 NPAPI方式扩展,优劣:相对复杂,接口统一,方便移植到其他平台
3. 通过本地扩展方式,类似于js中对象的实现,在webcore 上实现,优劣:复杂,功能强大,移植性不好。
下面为android 上 webkit js 本地扩展方案中实现全局本地对象步骤 :
android上js引擎默认使用的是V8 ,比用 wekit本身提供的引擎麻烦一些。
1. 在 WebCore/page/ 目录下创建 helloObj.h helloObj.cpp helloObj.idl
2. webcore 目录下 android.mk ,添加 page/helloObj.cpp
3. DOMWindow.cpp include "helloObj"
4. DOMWindow.cpp public 中添加
HelloObj* optionalHelloObj() const {return m_helloobj.get();}
PassRefPtr<HelloObj> helloObj() const;
实现:
PassRefPtr<HelloObj> DOMWindow::helloObj() const
{
if(!m_helloobj)
m_helloobj = HelloObj::create(m_frame);
return m_helloobj.get();
}
5.DOMWindow.h 中添加 class HelloObj;,private 部分添加 mutable RefPtr<HelloObj> m_helloobj;
6. DOMWindow.idl 中添加 readonly attribute HelloObj helloObj;
7. V8Index.h 中 添加 V(HELLOOBJ, HelloObj)
8. V8Index.cpp 中添加 #include "V8HelloObj.h"
9. Android.derived.v8bindings.mk中添加 $(intermediates)/bindings/V8HelloObj.h \
10. DOMWindow.cpp 中的clear函数添加
if(m_helloobj)
m_helloobj->disconnectFrame();
m_helloobj = 0;
11. DerivedSourcesAllInOne.cpp 中添加 #include "bindings/V8HelloObj.cpp"
- android 上 webkit js 本地扩展之全局本地对象实现步骤
- android 上 webkit js 扩展之全局本地对象实现步骤
- Webkit JS扩展对象 多实例实现
- webkit js扩展方式之Binding添加新DOM对象
- android webkit 添加全局js function
- webkit开发之JS扩展篇
- webkit 扩展 JavaScript 对象
- 【JS】全局对象(全局作用域) 内置对象挂到全局对象上,全局对象本身也挂到全局对象
- WebKit中为JS binding扩展DOM对象
- android 上 选择webkit js引擎方式
- WebKit之JS内嵌C++对象
- Webkit之插件扩展
- WebKit之扩展Binding
- android 4.0.1 webkit 基于JSC的JS 扩展
- JS本地对象之Array
- JS本地对象之Date
- node.js之全局对象process
- Node.js之Global全局对象
- 黑马程序员:为黑马做准备②
- 12-9总结
- 解决ubuntu系统在升级软件后冲掉grup配置导制无法进入新内核系统的问题
- 关于ADF inputListOfValues(LOV)的列宽度
- 体系结构要点知识系列一:计算机系统结构基础
- android 上 webkit js 扩展之全局本地对象实现步骤
- Essay Writing Process
- Linux Power Managment详解 .
- 获取Android手机上的图片和视频缩略图及抓图!!!
- eclipse文件编辑器相关概念
- android 现在有好的广告平台吗?
- android端和Struts2服务器端通信,交互信息,参数采用JSON,使用了HttpClient与HttpPost类
- 杂说
- (转)在 Mac OS X 下使用 Android NDK r5b 编译 FFmpeg 0.8