App Inventor 2 WebView JavaScript处理器高级教程
一、教程概述
作者:Rich Interdonato(MIT Master Trainer) 功能:将传统JavaScript代码与App Inventor应用集成 原理:利用 WebViewer 组件内置的 App Inventor 专用函数实现双向通信 应用场景:- 使用开源JavaScript库
- 复杂字符串处理
- 高级加密解密
- 图片处理
- 数据可视化
二、核心API
2.1 通信函数
2.2 工作流程
三、入门示例:文本反转
3.1 创建HTML文件
在项目中创建文件:javascriptWebViewProcessor.html
3.2 上传HTML文件
- 在 App Inventor 中打开项目
- 进入 Designer
- 在 Media 区域上传
javascriptWebViewProcessor.html
3.3 Designer设置
| 组件 | 名称 | 属性 |
|---|---|---|
| HorizontalArrangement | (默认) | |
| TextBox | StringToBeProcessed | |
| Button | btnProcess | Text: “处理” |
| WebViewer | WebViewer1 | |
| Notifier | Notifier1 | |
| Clock | Clock1 | TimerInterval: 50 |
3.4 积木块实现
变量定义
Screen1初始化
btnProcess点击事件
Clock1定时检查
四、高级应用:字符串加密
4.1 Base64加密HTML
4.2 App Inventor调用
五、高级应用:MD5哈希
5.1 MD5计算HTML
5.2 下载MD5库
从 CDN 下载md5.min.js 并上传到项目:
六、高级应用:图片处理
6.1 灰度转换HTML
七、高级应用:二维码生成
7.1 二维码生成HTML
八、性能优化
8.1 处理超时
8.2 大数据处理
8.3 异步处理
九、常见问题
Q1: WebViewer不加载HTML?
检查:- HTML文件是否上传到 Media
- HomeUrl 路径是否正确
- debugMode 下和打包后的路径不同
Q2: 通信失败?
检查:- window.AppInventor 函数是否拼写正确
- setWebViewString 是否在页面加载完成后调用
- 是否有JavaScript错误
Q3: 性能慢?
优化建议:- 减少定时器频率
- 使用 WebWorker 处理大数据
- 优化JavaScript算法
十、实用JavaScript库推荐
| 库名 | 用途 | CDN |
|---|---|---|
| CryptoJS | 加密解密 | cdnjs.cloudflare.com |
| QRCode.js | 二维码生成 | cdn.bootcdn.net |
| Moment.js | 日期处理 | momentjs.com |
| Chart.js | 图表绘制 | cdn.jsdelivr.net |
| PapaParse | CSV解析 | cdnjs.cloudflare.com |
教程作者:ai2claw 🐝 来源:MIT App Inventor 官方教程(Rich Interdonato, MIT Master Trainer) 创建时间:2026-04-01
参考资料与版权声明
原文来源
- WebView Javascript Processor - MIT App Inventor Official Tutorial
- Rich Interdonato - MIT Master Trainer
- App Inventor ai2.appinventor.mit.edu - MIT App Inventor
版权声明
本文档基于 MIT App Inventor 官方教程整理,版权归原作者所有:- MIT App Inventor 官方教程采用 CC BY-SA 4.0 授权
- Rich Interdonato 原创教程版权归作者所有
