Android WebKit EventSource 支持修改记录

转载请注明出处:http://blog.csdn.net/lihui130135
作者:李东辉

邮件:[email protected]


最近有人问道如何解决在android4.0平台上支持Event Source事件,好方便与服务器通讯
如果不支持的话就打印下面的错误
“Uncaught ReferenceError: EventSource is not defined"

因为EventSource事件是针对html5标准而做,这个在webkit开源组织里面已经在2010年的时候就已经支持了,按照道理说是开启
这样-DENABLE_EVENTSOURCE=1的开关就可以直接运行了
我给出的建议:
修改webkit/Source/Android.mk 添加一句话
LOCAL_CFLAGS += -DENABLE_EVENTSOURCE=1
或者在 external/webkit/Source/JavaScriptCore/wtf/Platform.h
#define ENABLE_EVENTSOURCE 1
结果发现尝试不行,今天拿出时间专门顺理了下,发现要支持这个功能需要修改的地方还有以下这么几处:

(1)
webkit/Source/Android.mk
添加 LOCAL_CFLAGS += -DENABLE_EVENTSOURCE=1
(2)
external/webkit/Source/JavaScriptCore/wtf/Platform.h
添加
#define ENABLE_EVENTSOURCE 1
(3)
webkit/Source/WebCore/Android.mk
添加
page/EventSource.cpp \
(4)
如果JS引擎用的是JSC
webkit/Source/WebCore/Android.jscbindings.mk
添加:bindings/js/JSEventSourceCustom.cpp \
V8的话使用
webkit/Source/WebCore/Android.v8bindings.mk
添加:bindings/v8/custom/V8EventSourceConstructor.cpp \

这样重新编译webkit
就可以支持了。
我是在android4.0.1平台上做的实验,每个版本可能各有不同,基本思路大同小异。
有什么疑问可以直接给我留言。



你可能感兴趣的:(Android WebKit EventSource 支持修改记录)