作者:李东辉
邮件:lihui40319@gmail.com
最近有人问道如何解决在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的话使用

本文介绍如何在Android 4.0平台上启用EventSource事件支持,以实现与服务器的实时通信。通过修改webkit源代码,包括在Android.mk文件中添加LOCAL_CFLAGS,更新Platform.h,以及在WebCore的Android.mk和特定的bindings.mk文件中添加相关源代码,可以成功编译并支持EventSource功能。实验在Android 4.0.1上完成,但适用于不同版本的Android系统。
最低0.47元/天 解锁文章
1万+





