Cocos Creator的WebView没有JsCallback接口吗

Cocos Creator的WebView没有JsCallback接口吗?
类似如下:
var webview = new ccui.WebView(“main.html”);
webview.setJavascriptInterfaceScheme(“ccjs”);
webview.setOnJSCallback(function (sender, url) {
cc.log(url);
});

1赞

这个 web 上不支持

我想问下,在web端,如何从webview调回cocos?
目标是想在web端cocos跟webView之间交互

这么重要的东西居然没有…,计划表没有提供这个功能的安排吗,不能跟cocos层交互的webview跟条咸鱼有什么区别… 老实说这个功能特性很重要呢

cocos 调 html里的js可以,反过来怎么做?

    var url = "upload_image.html";
    var scheme = "webjs";
    var webView = new ccui.WebView();
    webView.setContentSize(this.getContentSize());
    webView.setScalesPageToFit(true);
    webView.setPosition(this.width / 2, this.height);
    webView.loadURL(url);
    this.addChild(webView);
    webView.setEventListener(ccui.WebView.EventType.LOADING, function(sender, url){
        cc.log("event LOADING:" + JSON.stringify(url));
        return true;
    })
    webView.setEventListener(ccui.WebView.EventType.LOADED, function(sender, url){
        cc.log("event LOADED:" + JSON.stringify(url));
        webView.evaluateJS(scheme + ":w2j()");
        return true;
    });
    webView.setEventListener(ccui.WebView.EventType.ERROR, function(sender, url){
        cc.log("event ERROR:" + JSON.stringify(url));
        return true;
    })
    webView.setEventListener(ccui.WebView.EventType.JS_EVALUATED, function(sender, url){
        cc.log("event JS_EVALUATED:" + JSON.stringify(url));
        return true;
    })
    webView.setJavascriptInterfaceScheme(scheme);

1.6beta6.2。
在creator中调用如下函数,ios手机黑屏,没有报错信息,是什么原因呢?看源码jsb_cocos2d_ui.js,是因为没有这个的绑定么?
webview.setJavascriptInterfaceScheme(scheme);
webview.setOnJSCallback(jsCallback);
项目中通过webview打开h5游戏,需要有个交互。
如果1.6目前没有绑定这个的话,会考虑这些天给绑定上么?@panda @Knox
ccui.WebView.prototype.setEventListener = function(event, callback){
switch(event)
{
case ccui.WebView.EventType.LOADING:
this.setOnShouldStartLoading(callback);
break;
case ccui.WebView.EventType.LOADED:
this.setOnDidFinishLoading(callback);
break;
case ccui.WebView.EventType.ERROR:
this.setOnDidFailLoading(callback);
break;
case ccui.WebView.EventType.JS_EVALUATED:
//this.setOnJSCallback(callback);//此处注释了呢,也没有这个方法?
cc.log(“unsupport web event:” + event);
break;
default:
cc.log(“unsupport web event:” + event);
break;
}
};

我给你另一个思路,从服务器中转回调,web调http,再调游戏服,游戏服发消息给你的客户端。

想过这个思路,客户端和服务端得建立长链接吧,这个h5小游戏的设计本身都不用连服务端的

官方大神可以帮忙看看这个问题么,项目马上要验收,需要这个功能。关注了最近的一些帖子,挺多开发者需要这个功能的,多谢啦

windows 的可以吗?还是说只是单纯的 ios 不行,(web 是不支持的)

我看了源码,没有看到绑定的。iOS真机测试黑屏,没有报错信息

你还没回答我的问题, windows 上会吗?

我的电脑是mac,没有window的手机,webview在iOS手机上测试的

确认了是什么问题么?比较着急,见谅。

自动绑定需要做,时间:这周会做,做完在发 PR 上来,你在自定义修改吧

2赞

好的,多谢啦,可以直接放到1.6的下个测试版本里么?这样就可以直接用binary方式了

有空的时候能否给我一个简单的范例吗?我好测试一下,thx

webview-test.zip (264.7 KB)
url用的官网的。
辛苦啦,期待。
@Knox

需要通信的话,可以在你的网页里面 postmessage,因为 web 版内部使用了 iframe

native里嵌入的webview,希望webview打开的网页可以和native互操作,通过scheme方式调用native的方法