当前位置: 首页 > news >正文

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

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


用 AWTK Designer 新建一个应用程序

先安装 AWTK Designer:

https://awtk.zlg.cn/web/index.html

1. 新建应用程序

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

  • 在窗口上放置一个按钮;

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

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

34529dc1e659a6ba184c42ece407ee2a.jpeg

2. 为按钮编写代码

2.1 删除 src 目录下全部文件(留着也可以,只是看起来比较乱),在 src 目录创建 js 目录。

2.2 在 src/js 下创建 application.js ,内容如下:

function applicationInit() { 

 home_page_open();

}
applicationInit()

2.3 在 src/js 下创建 home_page.js,内容如下:

function home_page_open() {

 var win = TWindow.open('home_page');

 var close = win.lookup("close", true);


 close.on(TEventType.CLICK, function(evt) { 

   var e = TPointerEvent.cast(evt); 

   var target = TButton.cast(e.target);
   console.log("click at " + e.x + " " + e.y + " on " + target.name);    console.log("global: " + TGlobal.getPointerX() + " " + TGlobal.getPointerY() + " " + TGlobal.isPointerPressed()); 

   return TRet.OK;  });
 win.layout();

}

注意:控件的名称一定要和 home_page.xml 保持一致。

3. 在 AWTK Designer 中,执行“打包” “编译” “模拟运行”

774d02fecd0d93739c87d873292acf18.jpeg正常情况下可以看到如下界面:34329da9cb711e94f1ad6fa3e32226ea.jpeg点击“关闭”按钮,退出应用程序。


编写配置文件

具体格式请参考,特殊平台编译配置:

https://github.com/zlgopen/awtk/blob/master/docs/build_config.md

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

examples/AwtkApplicationJS/build.json


{ 

  "name": "AwtkApplicationJS", 

  "version": "1.0", 

  "app_type":"js",

"copyright": "Guangzhou ZHIYUAN Electronics Co.,Ltd.", "themes":["default"], "sources": [ "src/js/*.js" ]

}


编译 WEB 应用程序

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

  • Windows 平台

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

  • Linux 平台

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

  • MacOS 平台

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

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


运行

1. 正常启动

  • ./start_web.sh

2. 调试启动

  • start_web_debug.sh

3. 用浏览器打开

 URL:http://localhost:8080/AwtkApplicationJS,可以看到:

0cc466eaa82189bdd30cbe215bcb767a.jpeg

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

d19065f05c132ee2386abcf9c6a034c4.jpeg

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

238a7a5d53c644c5195294de40b85609.jpeg


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 等)。如果希望两者通用,请避免使用这类函数。
http://www.lryc.cn/news/508448.html

相关文章:

  • dolphinscheduler服务注册中心源码解析(三)RPC提供者服务整合注册中心注册服务实现源码
  • 电脑不小心删除了msvcr120.dll文件怎么办?“缺失msvcr120.dll文件”要怎么解决?
  • js 深度克隆
  • 深度学习之超分辨率算法——FRCNN
  • 软件测试之压力测试【详解】
  • 电脑出现 0x0000007f 蓝屏问题怎么办,参考以下方法尝试解决
  • 分布式系统架构:限流设计模式
  • G口带宽服务器与1G独享带宽服务器:深度剖析其差异
  • Flamingo:少样本多模态大模型
  • 推荐一款免费且好用的 国产 NAS 系统 ——FnOS
  • 2025系统架构师(一考就过):案例题之一:嵌入式架构、大数据架构、ISA
  • 开机存活脚本
  • 车载网关性能 --- GW ECU报文(message)处理机制的技术解析
  • CosyVoice安装过程详解
  • 传统网络架构与SDN架构对比
  • 如何打造用户友好的维护页面:6个创意提升WordPress网站体验
  • 【hackmyvm】Zday靶机wp
  • redis使用注意哪些事项
  • 步进电机位置速度双环控制实现
  • 优化程序中的数据:从数组到代数
  • 【电商搜索】CRM: 具有可控条件的检索模型
  • 使用 ffmpeg 拼接合并视频文件
  • 【信号滤波 (上)】傅里叶变换和滤波算法去除ADC采样中的噪声(Matlab/C++)
  • Idea内,光标显示问题
  • 回顾 python3中字符串
  • 代码随想录day23 | leetcode 39.组合总和 40.组合总和II 131.分割回文串
  • 全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(switch语句)
  • R机器学习:决策树算法的理解与实操
  • 解锁高效学习之道:从认知升级到实践突破
  • 2024年12月CCF-GESP编程能力等级认证Python编程三级真题解析