javascript - Awesomium C 没有来自 awe_webview_set_callback_js_callback 的响应

标签 javascript html c user-interface awesomium

我已经在 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));

这是一个微妙但致命的错误。我希望这篇文章能够帮助其他遇到类似情况的人。

关于javascript - Awesomium C 没有来自 awe_webview_set_callback_js_callback 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9607415/

相关文章:

javascript - 从 activex 调用 javascript 函数

javascript - Node/MySQL - 尝试插入 ~800 条记录时出现代码 : 'ER_PARSE_ERROR' ,

jquery - 如何使输入字段在事件时更改其设计?

c - 如何将 Android native 代码调试到内核中?

c++ - C/C++ 向左或向右移动/偏移/移动位图?

c - 有register_strftime_function吗?

javascript - Apps 脚本错误 - 排序范围必须包括表单上的所有列

javascript - jQuery 获取具有特定类的第二个或 x div

html - 响应式设计 - Iphone 纵向 vs 横向

html - 使用 Bootstrap 对齐 HTML 中的文本