Android2.3如何加入对wml的支持(3)

4,加入wml的css文件
在external/webkit/WebCore/Android.derived.mk文件中,找到style_sheets := $(LOCAL_PATH)/css/html.css,在这句的下面加上:

ifeq ($(ENABLE_WML), true)    style_sheets := $(style_sheets) $(LOCAL_PATH)/css/wml.css    endif  

5,生成WMLNames.h文件:
在external/webkit/WebCore/Android.derived.mk文件中的最后,加上:

#WML attribute names    ifeq ($(ENABLE_WML), true)    GEN:= $(intermediates)/WMLNames.cpp $(intermediates)/WMLNames.h  $(intermediates)/WMLElementFactory.cpp $(intermediates)/WMLElementFactory.h    $(GEN): PRIVATE_PATH := $(LOCAL_PATH)    $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --tags $(wml_tag) --attrs $(wml_attrs) --factory --wrapperFactory --output $(dir $@)    $(GEN): wml_tag := $(LOCAL_PATH)/wml/WMLTagNames.in    $(GEN): wml_attrs := $(LOCAL_PATH)/wml/WMLAttributeNames.in    $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(wml_tag) $(wml_attrs)         $(transform-generated-source)    LOCAL_GENERATED_SOURCES += $(GEN)    endif  

注意:$(transform-generated-source)之前是个tab键。
6,对wml的mimeType的支持
在DOMImplementation.cpp文件中,在external/webkit/webcore/dom目录下,找到isXMLMIMEType方法,加入:

#if ENABLE(WML)              if (mimeType =="text/vnd.wap.wml")                   return true;    #endif  

7,修改framework
在framework/base/core/java/android/webkit/LoadListener.java中的handleHeaders方法,找到
else if (mMimeType.equals("text/vnd.wap.wml"));把里面处理成html的形式改成mMimeType = "text/vnd.wap.wml";

经过以上步骤,编译webkit,最好在编译webkit之前,执行一下rm ../../out/target/product/dkb/obj/STATIC_LIBRARIES/libwebcore_intermediates/ -rf 命令,编译framework。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/psjwy.html