0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AWTK-WEB 快速入门(1) - C 语言应用程序

ZLG致远电子 2024-11-27 11:46 次阅读

导读

AWTK 可以使用相同的技术栈开发各种平台的应用程序。有时我们需要使用 Web 界面与设备进行交互,本文介绍一下如何使用 C 语言开发 AWTK-WEB 应用程序。

用 AWTK Designer 新建一个应用程序

先安装 AWTK Designer

1.新建应用程序

这里假设应用程序的名称为 AwtkApplicationC,后面会用到,如果使用其它名称,后面要做相应修改。

在窗口上放置一个按钮;

将按钮的名称改为“close”;

将按钮的文本改为“关闭”。

3c5bd618-ac72-11ef-8084-92fbcf53809c.png

2.为按钮编写代码

2.1 用VSCode打开目录AwtkApplicationC,并打开文件src/pages/home_page.c

使用其它文本编辑器或 IDE 也可以,推荐使用 VSCode,并开启 Copilot,将大幅提升开发效率。

2.2 添加 close 按钮的事件处理函数。可以参考下面的代码:

static ret_t on_close(void* ctx, event_t* evt) { return tk_quit();}
/** * 初始化窗口的子控件 */static ret_t visit_init_child(void* ctx, const void* iter) { widget_t* win = WIDGET(ctx); widget_t* widget = WIDGET(iter); const char* name = widget->name;
// 初始化指定名称的控件(设置属性或注册事件),请保证控件名称在窗口上唯一 if (name != NULL && *name != '\0') { if (tk_str_ieq(name, "close")) { widget_on(widget, EVT_CLICK, on_close, win); } }
return RET_OK;}

正常情况下可以看到如下界面:


3c79194e-ac72-11ef-8084-92fbcf53809c.png

点击“关闭”按钮,退出应用程序。

编写配置文件

这里给出一个例子,可以在此基础上进行修改,该文件位于:

examples/AwtkApplicationC/build.json

{ "name": "AwtkApplicationC", "version": "1.0", "assets": "res/assets", "vendor": "zlgopen", "app_name": "org.zlgopen.AwtkApplicationC", "author": "xianjimli@hotmail.com", "copyright": "Guangzhou ZHIYUAN Electronics Co.,Ltd.", "themes":["default"], "sources": [ "src/*.c", "src/common/*.c", "src/pages/*.c", "src/*.h", "src/common/*.h", "src/pages/*.h" ], "web": { "app_type": "c", "assets": "design", "config": { "fontScale": "0.8", "defaultFont": "sans" } }, "harmonyos": { "icon": "design/default/images/xx/app_icon.png", "title": { "en_US": "MyApp", "zh_CN": "AwtkApp" }, "config": { "defaultFont": "default_full" }, "sources": [ "res/assets.inc", "res/assets/__assets_default.inc" ] }, "android": { "sources": [ "res/assets.inc", "res/assets/__assets_default.inc" ] }, "ios": { "sources": [ "res/assets.inc", "res/assets/__assets_default.inc" ] }}

如果不需要 android/harmonyos/ios 等平台,可以自行删除相应的配置。

编译 WEB 应用程序

进入 awtk-web 目录,不同平台使用不同的脚本编译:

  • Windows平台

./build_win32.sh examples/AwtkApplicationC/build.json release

./build_linux.sh examples/AwtkApplicationC/build.json release

  • MacOS平台

./build_mac.sh examples/AwtkApplicationC/build.json release

请根据应用程序所在目录,修改配置文件的路径。

运行

1. 正常启动

./start_web.sh

2. 调试启动

start_web_debug.sh

3. 用浏览器打开 URL:http://localhost:8080/AwtkApplicationC,可以看到:

3c814a60-ac72-11ef-8084-92fbcf53809c.png

4. 用浏览器打开 http://localhost:8080/AwtkApplicationC/simulator.html,可以看到:

3c92125a-ac72-11ef-8084-92fbcf53809c.png

5. 用浏览器打开 http://localhost:8080/AwtkApplicationC/app.html,可以看到:

3c9a245e-ac72-11ef-8084-92fbcf53809c.png

AWTK-WEB-JS 和 AWTK-JS 不同

两者在 API 上基本上是一样的,但是由于浏览器和 Jerryscript 的差异,导致少量功能无法做到完全一致,需要应用程序自行规避。

  1. AWTK-WEB-JS 不支持模态对话框。
  2. AWTK-WEB-JS 中的 print 函数是打印。请使用 console.log 输出调试信息
  3. AWTK-WEB-JS 不支持自动回收在 wasm 中分配的对象(如:color/rect/value 等)。如果希望两者通用,请避免使用这类函数。
  4. tk_quit 函数并不能退出应用程序。

3caa0414-ac72-11ef-8084-92fbcf53809c.jpg

图像显示应用芯片ZMP110X

硬件高集成化

丰富的多媒体特性

广泛的应用场景

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web
    Web
    +关注

    关注

    2

    文章

    1263

    浏览量

    69452
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136753
  • awtk
    +关注

    关注

    0

    文章

    44

    浏览量

    229
收藏 人收藏

    评论

    相关推荐

    AWTK的寓意

    一、介绍AWTK全称Toolkit AnyWhere,是ZLG开发的开源GUI引擎,旨在为嵌入式系统、WEB、各种小程序、手机和PC打造的通用GUI引擎,为用户提供一个功能强大、高效可靠、简单易用
    发表于 08-20 08:12

    AWTK-MVVM是什么?其功能有哪些

    AWTK-MVVM是一套为AWTKC语言开发,并支持各种脚本语言的MVVM框架,实现了数据绑定、命令绑定和窗口导航等基本功能,使用
    发表于 12-15 06:07

    C语言-Web应用程序

    ASP.NET是Microsoft的新一代服务器端技术,是.NET框架的一部分。运用C# 可以创建Web应用程序。本章介绍ASP.NET的基本概念,以及如何使用ASP.NET建立Web
    发表于 04-23 11:19 12次下载

    基于AWTK开发应用程序需要遵循的规范和方法

    AWTK 是 ZLG 开源的跨平台 GUI 引擎,本文介绍一下基于 AWTK 开发应用程序需要遵循的规范和方法,以保证应用程序也能跨平台运行。
    的头像 发表于 09-07 11:52 1371次阅读

    如何用AWTK和AWPLC快速开发嵌入式应用程序

    AWPLC 是 ZLG 自主研发的 PLC 系统(兼容 IEC61131-3),本文用一个简单的温度控制系统,来演示如何用 AWTK 和 AWPLC 快速开发嵌入式应用程序
    的头像 发表于 09-26 11:46 1400次阅读

    【产品应用】用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (2)-走马灯

    AWPLC 是 ZLG 自主研发的 PLC 系统(兼容 IEC61131-3),本文用一个简单的走马灯程序,来演示如何用 AWTK 和 AWPLC 快速开发嵌入式应用程序。    背景
    的头像 发表于 05-31 18:05 511次阅读
    【产品应用】用 <b class='flag-5'>AWTK</b> 和 AWPLC <b class='flag-5'>快速</b>开发嵌入式<b class='flag-5'>应用程序</b> (2)-走马灯

    AWTK和AWPLC快速开发嵌入式应用程序 (1)-温度控制器

    AWPLC是ZLG自主研发的PLC系统(兼容IEC61131-3),本文用一个简单的温度控制系统,来演示如何用AWTK和AWPLC快速开发嵌入式应用程序。背景AWTK全称
    的头像 发表于 09-28 09:57 710次阅读
    用<b class='flag-5'>AWTK</b>和AWPLC<b class='flag-5'>快速</b>开发嵌入式<b class='flag-5'>应用程序</b> (<b class='flag-5'>1</b>)-温度控制器

    【Z站推荐】用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (2)-走马灯

    AWPLC是ZLG自主研发的PLC系统(兼容IEC61131-3),本文用一个简单的走马灯程序,来演示如何用AWTK和AWPLC快速开发嵌入式应用程序。背景
    的头像 发表于 10-13 14:38 670次阅读
    【Z站推荐】用 <b class='flag-5'>AWTK</b> 和 AWPLC <b class='flag-5'>快速</b>开发嵌入式<b class='flag-5'>应用程序</b> (2)-走马灯

    【产品应用】用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (3)- 定时器

    AWPLC是ZLG自主研发的PLC系统(兼容IEC61131-3),本文用一个用定时器实现的走马灯程序,来演示如何用AWTK和AWPLC快速开发嵌入式应用程序。背景
    的头像 发表于 11-02 10:02 745次阅读
    【产品应用】用 <b class='flag-5'>AWTK</b> 和 AWPLC <b class='flag-5'>快速</b>开发嵌入式<b class='flag-5'>应用程序</b> (3)- 定时器

    【产品应用】用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (2)-走马灯

    AWPLC是ZLG自主研发的PLC系统(兼容IEC61131-3),本文用一个简单的走马灯程序,来演示如何用AWTK和AWPLC快速开发嵌入式应用程序。背景
    的头像 发表于 06-08 10:13 636次阅读
    【产品应用】用 <b class='flag-5'>AWTK</b> 和 AWPLC <b class='flag-5'>快速</b>开发嵌入式<b class='flag-5'>应用程序</b> (2)-走马灯

    【从0开始创建AWTK应用程序】开发及调试环境搭建

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用
    的头像 发表于 11-11 10:00 671次阅读
    【从0开始创建<b class='flag-5'>AWTK</b><b class='flag-5'>应用程序</b>】开发及调试环境搭建

    【从0开始创建AWTK应用程序】创建应用程序并在模拟器运行

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用
    的头像 发表于 12-01 08:24 499次阅读
    【从0开始创建<b class='flag-5'>AWTK</b><b class='flag-5'>应用程序</b>】创建<b class='flag-5'>应用程序</b>并在模拟器运行

    【从0开始创建AWTK应用程序】编译应用到嵌入式Linux平台运行

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用
    的头像 发表于 12-07 12:08 707次阅读
    【从0开始创建<b class='flag-5'>AWTK</b><b class='flag-5'>应用程序</b>】编译应用到嵌入式Linux平台运行

    【从0开始创建AWTK应用程序】编译应用到RTOS平台

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用
    的头像 发表于 03-21 08:23 611次阅读
    【从0开始创建<b class='flag-5'>AWTK</b><b class='flag-5'>应用程序</b>】编译应用到RTOS平台

    AWTK-WEB 快速入门(2) - JS 应用程序

    导读AWTK可以使用相同的技术栈开发各种平台的应用程序。有时我们需要使用Web界面与设备进行交互,本文介绍一下如何使用JS语言开发AWTK-WEB
    的头像 发表于 12-05 01:04 101次阅读
    <b class='flag-5'>AWTK-WEB</b> <b class='flag-5'>快速</b><b class='flag-5'>入门</b>(2) - JS <b class='flag-5'>应用程序</b>