用App Inventor 2 WxBit 汉化增强版快速制作安卓app

        最近我姐说是要给我小侄子报班少儿编程,她问我有什么好的建议或看法,因为我对少儿编程这块没接触过,然后我就了解了少儿编程这块,发现少儿编程主要是图形化编程,主要培养孩子们的逻辑思维能力和空间想象能力,我自己也比较好奇图形化编程,然后我就学习了WxBit 图形化编程,写了几个小demo。

       本文我用的是国内App Inventor 2 WxBit 汉化增强版

WxBit 图形化编程提供高德地图、高德定位、百度语音合成与识别、MQTT客户端等组件,支持多点触控、动态创建组件和通用事件,还有更多细节优化,汉化并增强的 App Inventor 2 服务器。icon-default.png?t=M666https://app.wxbit.com/

建议使用chrome浏览器或QQ 浏览器打开

 进入页面后需要登录,可以使用QQ进行登录

 进来后可以看到版本更新信息

 创建一个新项目

选择新建项目,填写项目名称

 

实例Demo1-点击按钮+1或摇晃手机+1

 1、给屏幕Screen起一个标题

        这里我是测试应用

2、在组件面板拖拽按钮,并设置在正中间

        在对齐方式中选择5

 3、组件面板中拖拽加速度传感器到屏幕

        拖拽的时候直接往屏幕就可以,不可见的组件会显示在下面

 4、进行逻辑设计

        设计点击按钮时及摇晃手机时的逻辑,当按钮点击时会给全局变量值+1,并设置按钮文本里的值为点击:全局变量值,当加速度传感器摇晃时也一样的逻辑。

 还可以进行调试

 

实例Demo2-一言金句

        当点击按钮时会随机显示一段名言

 1、给屏幕Screen设置标题,并加入标签按钮及HTTP客户端

        设置标签在上按钮在下,并居中

2、进行逻辑设计

        当按钮点击时这是http客户端网址

这里用到了一言api,可参考这篇博客

安卓实现每日一句功能-一言API调用_像向日葵一样~的博客-CSDN博客_一言api一言API官网地址:https://hitokoto.cn/https://blog.csdn.net/zhiwenganyong/article/details/118080282?spm=1001.2014.3001.5502        然后再解析响应内容,并设置标签的值

 

实例Demo2-车载语音

 1、加入图像框、标签、三个按钮、百度语音识别、百度语音合成、百度语音唤醒

        设置屏幕背景为黑色,这样更炫酷      

        三个按钮分别为开启唤醒、语音识别、文本朗读,放到水平布局中,并设置对齐方式为5

其中百度语音识别、百度语音合成、百度语音唤醒三个不可见组件在组件面板人工智能模块下

这里得加入图片及唤醒词文件

Open.png

 redflag.png

 car.png

 唤醒词文件获取

https://ai.baidu.com/ai-doc/SPEECH/Vk38lyr75icon-default.png?t=M666https://ai.baidu.com/ai-doc/SPEECH/Vk38lyr75

 

2、设置百度语音识别的Appid、AppKey、SecretKey

 

 3、设置百度语音合成的Appid、AppKey、SecretKey

 4、设置百度语音唤醒的Appid、AppKey、SecretKey

        设置启用语音唤醒及后台唤醒

Appid、AppKey、SecretKey的获取可看官网

百度AI开放平台-全球领先的人工智能服务平台百度AI开放平台提供全球领先的语音、图像、NLP等多项人工智能技术,开放对话式人工智能系统、智能驾驶系统两大行业生态,共享AI领域最新的应用场景和解决方案,帮您提升竞争力,开创未来。https://ai.baidu.com/

5、进行逻辑设计

              这里我设置的唤醒词是亚历山大,得先点击开启唤醒按钮然后点击语音识别说亚历山大,然后说打开车门时设置图像框的图片为Open.png,说关上车门时设置图像框的图片为redflag.png,识别到的语音会显示到文本框,点击文本朗读把文本框的内容读出来。

组件扩展导入

推荐网站,上面有一些组件(比如cn.colintree.aix.Translators.BaiduFanyi.aix),组件后缀名为.aix

欢迎来到ColinTree.cnicon-default.png?t=M666https://www.colintree.cn/导入后类似这样

屏幕导入导出

 项目的导入导出

打包apk导出

 

总结

        使用App Inventor 2 WxBit 图形化编程可以节省很多时间,写安卓app也很简单,图形化拖拽拼接积木的方式非常有趣味性,举个例子要写一个显示地图的安卓app你可能需要写一小段时间而用图形化编程的方式可能只需一分钟直接拖拽到屏幕而且不用写逻辑设计,我个人感觉图形化编程就是站在巨人的肩膀上,因为这些组件的底层代码已经写好呢直接封装给你用,但缺点也很明显自己无法优化代码,自己有兴趣的话也可以写一些好的组件给他人用

### 关于 wxbit 图形化编程中 MQTT 客户端收到非 JSON 文本导致的错误 在使用 wxbit图形化编程环境时,如果 MQTT 客户端接收到的消息并非有效的 JSON 对象,则可能会引发解析失败或其他运行时异常。这种问题通常源于消息生产者未按照预期格式发送数据或者消费者未能正确验证和处理接收到的数据。 以下是针对此问题的具体分析与解决方案: #### 1. **确认消息格式** 需要确保消息生产者的逻辑严格遵循约定好的协议,即只发送合法的 JSON 数据。可以通过调试工具(如 MQTTX 或其他在线客户端)订阅目标主题并观察实际发布的消息内容[^2]。 如果发现某些消息确实不符合 JSON 格式,可以联系消息生产方调整其业务逻辑以满足需求。 #### 2. **增强消息校验机制** 在消费端增加对消息有效性的判断是非常必要的。例如,在 Java 开发环境中可通过 `try-catch` 块捕获潜在的解析异常;而在基于 JavaScript 的场景下则可利用内置方法尝试转换字符串为对象形式后再继续操作[^3]。 下面展示了一个简单的伪代码实现方式用于演示如何安全地加载可能存在问题的数据包: ```javascript function parseMessage(messagePayload){ let parsedData; try{ parsedData = JSON.parse(messagePayload); }catch(error){ console.error('Failed to parse message as JSON:', error.message, 'Original Payload:', messagePayload); // 可在此处定义默认行为或记录日志以便后续排查原因 return null; } return parsedData; } const receivedMsg = "This is not a valid json"; // Simulated non-json string from broker const result = parseMessage(receivedMsg); if(result !== null){ processValidJson(result); // Proceed with further processing only when successful parsing occurs. } ``` #### 3. **优化错误反馈流程** 当检测到非法输入时,除了简单忽略外还可以采取更多措施来提升用户体验及系统稳定性。比如向用户界面推送通知提醒当前状态、保存原始数据至本地文件待人工核查等手段均有助于快速定位根源所在[^4]。 #### 4. **考虑兼容性设计** 若无法完全控制上游系统的输出样式,那么可以在应用程序内部构建一层适配层用来标准化外部传入的信息结构。这样即使遇到不匹配的情况也能尽量减少负面影响范围扩展的可能性[^5]。 --- ### 总结 综上所述,解决因接收非标准 JSON 类型造成的问题可以从源头治理、中间环节防护以及末端补救三个层面入手展开工作。务必重视每一个细节部分的设计合理性从而保障整个通讯链路顺畅无阻塞现象发生。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像向日葵一样~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值