真棒C没有来自awe_webview_set_callback_js_callback的响应
Awesomium C no response from awe_webview_set_callback_js_callback
我在Awesomium表单上问过这个问题,但我还没有收到任何回复,我想我也可以通过在这里提问来加快速度。
当我按下相应的html按钮时,我无法到达callback_UI()中的任何断点。链接可以很好地在页面之间移动,但不会触发回调。
这是我的简单C端代码:
#define BUFFER_LEN_CALLBACKS 100
#define NAME_UIOBJ_INDEX "object_index"
#define NAME_UICALL_INDEX "callback_index"
void callback_UI(awe_webview* view, awe_string const* object_name, awe_string const* callback_name, awe_jsarray const* args){
char buff_object_name[BUFFER_LEN_CALLBACKS] = {0};
char buff_callback_name[BUFFER_LEN_CALLBACKS] = {0};
//char buff_args[BUFFER_LEN_CALLBACKS] = {0};
// Get the strings.
awe_string_to_utf8(object_name, buff_object_name, BUFFER_LEN_CALLBACKS);
awe_string_to_utf8(callback_name, buff_callback_name, BUFFER_LEN_CALLBACKS);
string s_obj_name(buff_object_name);
string s_call_name(buff_callback_name);
HandleCallback( s_obj_name, s_obj_name );
}
void create_uiobject(awe_webview* view, char* name){
awe_string* awes_name = awe_string_create_from_ascii(name, sizeof(name));
awe_webview_create_object(view, awes_name);
awe_string_destroy(awes_name);
}
void create_uicallback(awe_webview* view, char* name, char* callback){
awe_string* awes_name = awe_string_create_from_ascii(name, sizeof(name));
awe_string* awes_callback = awe_string_create_from_ascii(
callback,sizeof(callback));
awe_webview_set_object_callback(view, awes_name, awes_callback);
awe_string_destroy(awes_name);
awe_string_destroy(awes_callback);
// Set our UI callback to let the javascript talk to our program.
awe_webview_set_callback_js_callback(view, callback_UI);
}
void setup_javascript_objects(awe_webview* view){
// Create our object names.
create_uiobject(view,NAME_UIOBJ_INDEX);
// Create our object callbacks.
create_uicallback(view, NAME_UIOBJ_INDEX, NAME_UICALL_INDEX);
}
这是我的html端javascript代码:
<input type="button" value="Click Me!"onclick="object_index.callback_index('hello!')" />
其他一切都很好。awe_webview_set_callback_js_console_message()告诉我没有定义"object_index"。我使用awe_webview_create_object()来实现这一点,但可能我用错了。同上。
有人有什么想法吗?
问题是我的调用:
awe_string_create_from_ascii(name, sizeof(name));
需要:
awe_string_create_from_ascii(name, strlen(name));
这是一个微妙但严重的错误。我希望这篇帖子能够帮助其他处于类似情况的人。
相关文章:
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- window.onload没有'无法在Android WebView中工作
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- Android Webview通过Javascript注入CSS
- Android在webview中加载带有javascript的html文件,得到Uncaught ReferenceEr
- 骨干's Router.execute(callback,args,name)方法获取未定义的名称
- 在Android WebView中通过javascript检测点击HTML选项标记
- 用JavaScript替换Android WebView模板上的html文本
- Hammer.js阻止在Android Webview中点击超链接
- 在android中显示固定高度的webview内的大型内容
- Javascript inject CSS into Swift WebView
- 在webView上加载本地存储的文件时延迟
- WebView返回错误的window.innerHeight
- 如何使用webview在React Native中使用Highcharts
- Error: timers.js:234 callback.apply(timer, args);
- 在Android WebView中运行Javascript-onPageFinished循环
- Chrome 50的Android WebView在触摸页面之前会阻止Javascript
- 在promise中返回callback()和callback(
- 在Android的Webview中添加Javascript
- HTML5画布支持和Android Webview