zlgopen / awtk-mvvm

Model-View-ViewModel for AWTK
GNU Lesser General Public License v2.1
88 stars 27 forks source link

js viewmodel 代码内部有没有办法调用c函数,类似fscript? #61

Closed Tracker647 closed 2 months ago

xianjimli commented 2 months ago

注册之后才能调用:

jerry_value_t wrap_text_file_read(const jerry_call_info_t* call_info_p, const jerry_value_t argv[],
                           const jerry_length_t argc) {
  char* data = NULL;
  jerry_value_t jret = 0;

  if (argc == 1) {
    char filename[MAX_PATH + 1] = {0};
    jerry_size_t size = jerry_get_utf8_string_size(argv[0]);

    if (size < MAX_PATH) {
      jerry_string_to_utf8_char_buffer(argv[0], (jerry_char_t*)filename, size);
      filename[size] = '\0';
      data = (char*)file_read(filename, NULL);
    }   
  }

  if (data != NULL) {
    jret = jerry_create_string((const jerry_char_t*)data);
    TKMEM_FREE(data);
  } else {
    jret = jerry_create_null();
  }

  return jret;
}

jerryx_handler_register_global((const jerry_char_t*)"text_file_read", wrap_text_file_read);
Tracker647 commented 2 months ago

看了下之前的issue, 确实是这个方法。 一直想看看有没有把js用于实际项目的可能性,目前的js viewmodel还是很受限的,不过写界面能直接用对象,不需要弄注释还是很好用,要是能联合c语言做数据逻辑,再加上支持文件操作和awtk-web上的部署,就特别好了。

xianjimli commented 2 months ago

用vscode + copilot,它自动生成注释,很好用。