cocos2dx-html WebView支持

215 阅读2分钟

现状:

1、 该版本cocos 的webview为实验性功能;

2、缺失native接口支持,报错找不到 ccui.WebView;

3、在浏览器上回持续闪烁页面,或白屏;

测试代码:

var webView = new ccui.WebView();
webView.loadURL("[http://www.baidu.com](http://www.baidu.com)");
webView.setContentSize(320, 240);
webView.setPosition(800/2, 450/2);
webView.setScale(0.5);
webView.setScalesPageToFit(true);
window.webView = webView;
this.addChild(webView);

native 支持:

1、增加auto binding配置;

执行导出脚本失败:

PYTHON_BIN not defined, use current python.
generating userconf.ini...
Generating bindings for cocos2dx_experimental_webView...
Using userconfig 
  [('androidndkdir', '/Users/zhaoheng/vm/android/android-ndk-r10c'), ('clangllvmdir', '/Users/zhaoheng/vm/android/android-ndk-r10c/toolchains/llvm-3.4/prebuilt/darwin-x86_64'), ('cocosdir', '/Users/zhaoheng/work/WorldTourCasino_native/frameworks/js-bindings/cocos2d-x'), ('jsbdir', '/Users/zhaoheng/work/WorldTourCasino_native/frameworks/js-bindings'), ('cxxgeneratordir', '/Users/zhaoheng/work/WorldTourCasino_native/tools/bindings-generator'), ('extra_flags', '')]

.... Generating bindings for target spidermonkey

.... .... Processing section cocos2dx_experimental_webView 

Traceback (most recent call last):
  File "/Users/zhaoheng/work/WorldTourCasino_native/tools/bindings-generator/generator.py", line 1550, in <module>
    main()
  File "/Users/zhaoheng/work/WorldTourCasino_native/tools/bindings-generator/generator.py", line 1545, in main
    generator = Generator(gen_opts)
  File "/Users/zhaoheng/work/WorldTourCasino_native/tools/bindings-generator/generator.py", line 974, in __init__
    self.index = cindex.Index.create()
  File "/Users/zhaoheng/work/WorldTourCasino_native/tools/bindings-generator/clang/cindex.py", line 2090, in create
    return Index(conf.lib.clang_createIndex(excludeDecls, 0))
  File "/Users/zhaoheng/work/WorldTourCasino_native/tools/bindings-generator/clang/cindex.py", line 141, in __get__
    value = self.wrapped(instance)
  File "/Users/zhaoheng/work/WorldTourCasino_native/tools/bindings-generator/clang/cindex.py", line 3369, in lib
    lib = self.get_cindex_library()
  File "/Users/zhaoheng/work/WorldTourCasino_native/tools/bindings-generator/clang/cindex.py", line 3400, in get_cindex_library
    raise LibclangError(msg)
LibclangError: dlopen(../libclang/libclang.dylib, 0x0006): tried: '../libclang/libclang.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS../libclang/libclang.dylib' (no such file), '/usr/lib/../libclang/libclang.dylib' (no such file, not in dyld cache), '../libclang/libclang.dylib' (no such file). To provide a path to libclang use Config.set_library_path() or Config.set_library_file().
-------------------------------------
Generating javascript bindings fails.
-------------------------------------

尝试初始状态执行脚本失败,clang 环境问题,升级bindings-generator,编译通过;

2、检查js bindings引入:

cocos/scripting/js-bindings/auto/jsb_cocos2dx_experimental_webView_auto.cpp

cocos/scripting/js-bindings/auto/jsb_cocos2dx_experimental_webView_auto.hpp

cocos/scripting/js-bindings/manual/experimental/jsb_cocos2dx_experimental_webView_manual.cpp

cocos/scripting/js-bindings/manual/experimental/jsb_cocos2dx_experimental_webView_manual.h

xcode:

android:

cocos/scripting/js-bindings/proj.android/Android.mk

cocos/ui/Android.mk

3、检查 CMake注册

cocos/scripting/js-bindings/CMakeLists.txt

cocos/ui/CMakeLists.txt,尤其注意 ui/UIWebView.cpp的引入

4、检查jsb 脚本注册:

或在 Appdelegate.cpp中注册:

H5 端显示问题:

不要重复挂载