# 基础库更新日志

小程序基础库，提供了框架中的核心能力，包括系统接口 Page、App、Component、Behavior、ty 对象; getApp()、getCurrentPages()
等常用方法;以及基础组件等; 事件系统、网络请求、数据缓存、路由等能力。

## 基础库更新

基础库更新会带来新的能力和特性，保持向下兼容，**客户端总是使用最新的基础库版本**。

基础库版本由 `major.minor.patch` 格式构成。基础库版本发布后客户端 App 会在下一次冷启动的情况下自动更新，或者通过手动清除缓存后，重启App进行更新。

开发者可以在 project.tuya.json 字段 `baseversion` 指定最小可运行版本，客户端 App 会根据运行环境加载符合条件的小程序应用。

Tuya MiniApp IDE 可选择最近的 20 个基础库版本，开发者可以在 Tuya MiniApp IDE 中选择基础库版本，查看不同版本的能力和特性。

### 2.30.21 (2026-06-09)

**新功能**

- **core-widget:** 实现 createSelectorQuery 节点查询能力

### 2.30.20 (2026-05-29)

**新功能**

- **app-panel:** 连云激活合并至checkActivation
- **map:** 新增 maptap 点击事件

### 2.30.19 (2026-05-22)

**修复**

- **hide:** rjs://@tuya-miniapp/rjs- 白名单前缀错误

### 2.30.18 (2026-05-21)

**修复**

- **hide:** 修复 ty.reportEevnt 可能存在多次调用 ty.getAppInfo 的场景

**回退**

- Revert "fix(core-renderer): 修复 keyed diff 的 newIndex 赋值"
- Revert "test(core-renderer): 补充 patch 分支用例并提升覆盖率"

### 2.30.17 (2026-05-06)

**新功能**

- 新增加 ad-banner 组件异层组件
- 增加 rjs-markmap 插件
- 支持 iPad 屏幕模式 full|contain

**修复**

- **core-renderer:** 修复 keyed diff 的 newIndex 赋值
- **hide:** 修复自定义组件 attached 生命周期未触发导致的 setTimeout 泄漏

### 2.30.16 (2026-04-15)

**新功能**

- 新增无障碍环境根节点条件样式
- **hide:** 更新 USER_DATA_PATH 变量的值从客户端获取

**修复**

- 修复auto-height+min-height时 textarea 高度不正确的问题
- **app-panel:** improve BLE status synchronization on page visibility changes
- **hide:** 兼容 IDE 环境 deviceInfo 信息 \*Height 为 string 的问题
- **hide:** 修复 appLaunch 启动时 webviewId 兼容问题
- **ota:** update PID product check to handle array of results

### 2.30.15 (2026-03-17)

**新功能**

- 组件库无障碍支持
- createMediaPlayerContext 新增 openSound 方法
- **hide:** 补充无障碍模拟tap事件的role属性字段

**修复**

- **hide:** 修复aria-disabled类型不为字符串的问题
- **hide:** 修复click事件会触发的问题

### 2.30.14 (2026-03-12)

**新功能**

- 新增加 I18n.p 多语言方法(不替换占位符返回)
- createMediaPlayerContext 新增 setDataSource,startLocalMediaPlay,stopLocalMediaPlay 方法
- **hide:** 新增 ipc 相关 APIs
- **hide:** cdn 域名云端配置获取

**修复**

- 修复 behaviors 被引用覆盖的问题
- **hide:** 避免 appMore 重复打开设备页面
- **hide:** 修复 navbarHeight CSS 环境变量错误的问题

**性能优化**

- 缓存功能页多语言对象

### 2.30.10 (2026-01-27)

**修复**

- **video:** video 标签安卓鸿蒙偶现播放问题修复

**回退**

- Revert "chore(hide): 修改 scroll-view 组件滚动条默认样式"

### 2.30.9 (2026-01-23)

**修复**

- vibrateShort 震动交互鸿蒙默认参数的问题

### 2.30.8 (2026-01-19)

**新功能**

- 新增 ty.enablePageScroll 控制页面滚动 API
- 支持 App 自定义字体设置
- rjs 开放 motion 白名单
- scroll-view/slide 增加交互震动效果
- **scroll-view:** 新增 scroll-into-view-offset 额外偏移
- **web-view:** 新增 inject-ttt 属性支持注入 kit 能力

**修复**

- 修复 behavior properties 合并的执行顺序问题
- 修复 image bind:onload 触发两次的问题
- **hide:** 修复 SjsScheduler 未 catch 异常的问题

### 2.30.5 (2025-12-16)

**修复**

- 修复鸿蒙原生组件事件通信的问题
- 修复键盘收起页面回弹问题

### 2.30.4 (2025-12-12)

**新功能**

- **hide:** Android 支持 ttt JSON 数据通信
- map 组件增加 showScaleView 缩放视图功能
- scroll-view新增滚动回弹属性

**修复**

- **hide:** 补充修复安卓disableScorll时键盘收起不回弹的问题
- **hide:** checkDomReady 检测 DOM 渲染完成
- **panel-ota:** 修复被分享的设备会检测设备 OTA

### 2.30.3 (2025-11-27)

**新功能**

- 添加动画begin和finish事件，调整相关动画逻辑
- 新增接口 onCache 缓存能力

**修复**

- 修复disablescroll为true时键盘收起不回弹的问题
- widget 环境不支持 JSON 数据格式

### 2.30.2 (2025-11-13)

**新功能**

- 修改图片处理下西欧区域名
- input 组件内容为空时点按删除触发 bind:input 事件

**修复**

- 修复input在安卓特定机型删除数字的问题

### 2.30.1 (2025-11-10)

**新功能**

- 新增 svg-render 组件
- **hide:** 新增 SJS cdn.url 图片裁切参数

**修复**

- 修复 page-container 手势后退的问题
- 修复异层组件通信实例顺序问题
- **hide:** 延迟获取 eventIdentifier 的值
- **hide:** getWindow not defined

### 2.29.19 (2025-10-27)

**修复**

- 横屏导致 rem 单位变化的问题

### 2.29.18 (2025-10-20)

**新功能**

- Android 端通过 isEagerInit 表示开启预加载初始化

**修复**

- 修复功能页提前注入完成判断的问题

### 2.29.17 (2025-10-13)

**新功能**

- IpcContext 添加 startPlayBack stopPlayBack
- map 组件添加 mapType 参数
- **scroll-view:** 支持 padding 样式作用于滚动容器

**修复**

- 规避 Android 执行两次注入的问题
- 修复 iOS 预加载横屏进入状态初始化的问题
- **hide:** 修复opacity动画无效问题

### 2.29.16 (2025-09-22)

**修复**

- 修复 view hover-class在样式隔离下不生效的问题
- 修改movableview scalemin最小值为0.1
- **issue:** 修复未知情况下 style.parentNode 不存在的问题

### 2.29.15 (2025-09-17)

**修复**

- 修复input组件在IOS上输入韩文的问题
- **hide:** 修复 getCustomConfig API 新增小程序 id 参数的问题
- **hide:** iOS 体验评分关联问题
- **hide:** onAppShow 回调参数丢失的问题

### 2.29.14 (2025-09-10)

**新功能**

- **hide:** 仅 iOS TTT 函数提前注入

**修复**

- 修复textarea组件computed元素占位的问题
- **hide:** 修复 appInfo 在逻辑层预加载丢失的问题
- **hide:** 移除 getLaunchOptionsSync 的埋点监控

### 2.29.13 (2025-09-04)

**修复**

- **panel:** 处理 alwaysSingleFaultToast 第二个参数不存在的问题

### 2.29.12 (2025-09-03)

**修复**

- 回滚事件队列的延迟注册机制

### 2.29.11 (2025-09-02)

**修复**

- 修复 iOS downloadFile 接口兼容问题

### 2.29.9 (2025-08-28)

**新功能**

- 新增 fault 展示列表配置项
- 新增 ty.reportError 异常上报 API
- 修改scollr-view hidescorllbar初始值
- createMediaPlayerContext 新增 readFromSandbox 方法
- map 组件增加 disableAnimation 参数

**修复**

- 修复 input 聚焦光标不置于文本最后的问题
- 修复点击事件未拦截导致的冒泡问题
- 修复二次渲染 QuerySelector 异常的问题
- **hide:** 修复 appSchema 链接错误的问题
- scroll-view 滚动条样式切换

### 2.29.8 (2025-08-22)

**修复**

- ty.getAppScheme 接口缓存数据异常的问题

### 2.29.7 (2025-08-21)

**修复**

- 回滚 scroll-view 的滚动条处理方案

### 2.29.6 (2025-08-07)

**修复**

- 处理二次OTA检测失败问题
- 兜底 Android 的 getNetworkType 超时的问题
- 修复 scroll-view 滚动条未展示的问题
- **hide:** 暂关闭行为埋点可能会影响体感数据

### 2.29.5 (2025-07-30)

**新功能**

- **hide:** Android 增加 onPageScale 浮窗模式事件

**修复**

- 安卓 onNetworkStatusChange问题、App小程序缓存问题兼容
- 为 localDeviceEntry 方法添加不同的参数
- format

### 2.29.4 (2025-07-23)

**新功能**

- 适配支持 HarmonyOS 系统
- **hide:** 面板蓝牙权限及弹窗问题
- Image 组件新增 fadeDuration 渐入特性
- ipc-context 新增倍数播放能力

**修复**

- 修复 iframe 标签通信未支持的问题
- 修复构建 core-js 注入阶段的问题
- 最大子节点深度过滤问题
- **hide:** [TrackEvent] 在 IDE 下展示的问题
- **hide:** 修复渲染状态在快速操作下导致不一致的问题

### 2.29.1 (2025-07-01)

**新功能**

- 逻辑层支持预加载启动模式
- 陀螺仪扫地机 api 调整&新增
- 新增 API `ty.getCustomConfig` 获取自定义配置
- 支持按需注入模式 `lazyCodeLoading`
- **hide:** 优化 vConsole 展示日志
- Page 实例添加 this.removeSnapshot 手动移除的方法

**修复**

- 修复 iOS 13 中对 Function 类型判断异常

**修复**

- ipc-player 在 resize 阶段未正确布局的问题

### 2.28.5 (2025-06-05)

**修复**

- 修复 ty.getDeviceInfo 接口 Promise 调用异常的问题

### 2.28.4 (2025-05-26)

**新功能**

- 新增加 media-player 原生组件
- 优化骨架快照移除动画模式
- **hide:** ray-core 升级到 0.5.0-beta.7

**修复**

- 修复 ComponentDescriprot.addClass 方法在样式隔离模式下添加异常的问题
- 修复体验评分安全区计算的方式
- **hide:** 修复获取页面配置兼容的问题

### 2.28.3 (2025-05-20)

**修复**

- 修复 debugLangOn 判断错误的问题

### 2.28.2 (2025-05-19)

**新功能**

- IpcPlayerContext 添加 setConfig 方法

**修复**

- 修复兼容环境变量类型错误的问题

**修复**

- 调整快照图移除阶段
- 修复 ty.createIntersectionObserver 选项 thresholds 未生效的问题
- **hide:** 处理 OTA 信息未换行问题

### 2.27.5 (2025-05-10)

**修复**

- **core:** 修复 change-case 使用的正则在低端机无法运行的问题

### 2.27.4 (2025-05-06)

**新功能**

- 缓存 launchOptions 接口数据
- 新增 ty.onAppPause ty.onAppResume 事件
- **hide:** 帮助中心优先使用小程序打开 & 修复默认参数未传递设备id的问题
- ipc-player 增加 config 配置

**修复**

- 体验评分 FMP 计算方式
- 修复自定义组件样式权重的问题
- image 标签 widthFix 切换 hidden 的问题
- ipc-player 更新变成属性
- RayEngine 导出对象异常的问题

### 2.27.3 (2025-04-21)

**新功能**

- 基础库内置 ray 渲染引擎
- 支持首次渲染前展示骨架屏快照
- **hide:** 扫地机新增一个修改地图名称的接口
- **hide:** 针对蓝牙离线弹窗的显示与隐藏做配置化处理

**修复**

- 修复 relations 计算异常的问题
- **hide:** 移除调试埋点
- **hide:** IPC 设备类 api 的问题
- ty.pageScrollTop 不支持 scroll-view 滚动的问题

### 2.27.1 (2025-04-07)

**新功能**

- 支持小程序分包模式
- **hide:** update 增加扫地机器人 API
- **ipc-player:** 增加 createAICameraDevice API
- vConsole 支持命令行输入

**修复**

- 修复 cover-view 热区定位异常的问题
- 修复 nativeDisabled 入参错误未提示的问题
- 修复 promise 事件队列在 iOS 13 14 上的影响
- **hide:** 调整时间埋点数据统计
- **hide:** 兜底样式注入在末尾
- **hide:** 修复获取 pageConfig 配置异常的问题

**修复**

- 修复 extClass 被无端渲染的问题
- 修复 externalClasses 透传 & 更新问题
- 修复父组件 externalClasses 无法覆盖子元素的问题
- **hide:** 默认启动功能页内部页面无法打开的问题
- rjs 注册 worker 路径匹配问题

### 2.26.7 (2025-03-06)

**新功能**

- rich-text 增加事件响应 tap longpress 等

**修复**

- 修复 `:host` 样式横屏切换丢失的问题

### 2.26.6 (2025-02-25)

**新功能**

- **panel:** 添加移除 faultToast 方法及关闭 widget 的方法
- widget 增加 video 标签
- widget 支持真机调试 2.0

**修复**

- 修复部分接口代理未抛出异常的问题

### 2.26.5 (2025-02-17)

**修复**

- scroll-view 在 iOS 下首次滚动异常的问题

### 2.26.1 (2025-01-20)

**新功能**

- 增加状态栏 css 变量

**新功能**

- 添加 getRegionCode 同步返回方式
- mesh/beacon 设备启动和关闭时调用连接及断连方法

**新功能**

- 多语言调试增加小程序启动路径
- 新增 widget 下 web-iframe 标签
- 增加新能源线API, ty.energy
- ipc-player 增加 setPTZControllable 方法

**修复**

- scroll-view 绝对定位后的 intoView 不准确的问题

**修复**

- 修复 IDE 环境下功能 getPresetData 的兼容问题
- 移除 Android 模式下背景点击高亮
- ty.canIUse 方法环境判断的问题

**修复**

- 修复 externalClasses 透传的场景

### 2.24.1 (2024-12-13)

**新功能**

- 新增加 IPC Player API 能力
- **canvas:** 支持 bind:resize 响应事件
- widget.size 支持 0 size

**新功能**

- 增加对 studio 小程序的预览支持
- 增加网关、健康、canIUse API
- 支持 webview 媒体后台播放
- 支持真机调试模式下展示视图层日志
- ty.snapshot 屏幕截图功能

**修复**

- 修复 iOS 兼容功能页 entryCode 优先的模式

**修复**

- 修复 scroll-view intersectionObserver 上的兼容问题
- 修复 vnode 节点判断的空问题

**修复**

- 修复 atop 未兼容 false 0 "" 数据的问题

### 2.22.1 (2024-10-22)

**新功能**

- 支持 darkmode 指定模式
- 支持多语言调试代码获取

**修复**

- 修复懒加载模式下 rjs 权限异常问题

**修复**

- 修复 textarea 在动画阶段高度为 0 的问题
- 修复异层组件调用所在页面的问题
- popup 组件未阻止 body 滚动的问题

### 2.21.10 (2024-09-18)

**修复**

- 修复 video 全屏操作不生效的问题
- **core:** 事件系统 tap 事件未展示 event.touches 的问题

### 2.21.9 (2024-09-10)

**修复**

- 修复内置组件无法调用 sjs 函数的问题

### 2.21.8 (2024-09-06)

**新功能**

- 功能页多语言优先级低于宿主

**修复**

- 调整 onHide 的实现方式
- 修复 promise 报错对象值无法判断的问题
- 修复 ready 事件未触发的问题
- 优化页面切换事件响应

### 2.21.4 (2024-08-22)

**修复**

- 修复 iOS 下重复注入主题覆盖的问题
- 修复 widget config 覆盖写入的问题
- 修复功能页未匹配未抛出异常问题

### 2.21.3 (2024-08-15)

**修复**

- 模拟器 navigateTo 可以调用 tabBar 页面的问题
- 修复 ide 真机调试 pageId 类型问题
- 修复 switchTab 调用含 query 的兼容
- 修复双指同时 tap 触发 longtap 的问题

### 2.21.1 (2024-08-13)

**新功能**

- 扩展api独立包, 添加激光扫地机器人相关api
- 实现 rjs 的 async 写法调用
- 视图层埋点
- 新增 ipc API
- 增加 atop API 原生路由等
- 增加 video getCurrentTime 方法
- ipc player 增加 type 定义
- RJS 增加 getVideoById API

**修复**

- 修复预加载模式下 redirectTo 页面冲突的问题

**修复**

- 修复 radio slide 组件问题
- 修复 setTimeout 错误无法捕获的问题
- 页面删除后的状态记录
- ty.pageScrollTo 方法定位错误

### 2.20.1 (2024-06-26)

**新功能**

- **internal:** connectSocket api

**修复**

- **video:** x.webkitEnterFullscreen 兼容性报错问题

**修复**

- **core:** 修复初始化横竖屏计算的一致性
- swiper 组件元素 style 异常报错

**回退**

- ci: 支持按需加载模式构建

### 2.19.2 (2024-06-04)

**修复**

- 兜底 Android 机器对 visibilitychange 的兼容问题
- 修复 selectComponent 缓存未更新的问题

### 2.19.1 (2024-05-28)

**修复**

- 修复 intersectionObserver margins 值可选的问题

**修复**

- **core:** 修复 jsx-runtime 空对象处理的问题
- **core:** 修复 ray 模板运行 key 重复的问题
- **core:** 修复 scroll-view 子节点 catch:touchmove 未阻止滚动的问题
- **core:** 修复 selectComponent 组件内查询作用域的
- **core:** 修复 sjs callMethod 提示异常的问题

### 2.18.5 (2024-05-13)

**修复**

- 修复 widget 函数对象共享问题

### 2.18.4 (2024-05-13)

**新功能**

- 新增 reportDevelopLog 上报开发者日志

**修复**

- 解决 picker-view 滑动到收尾动画体验问题
- 修复 video 控件隐藏时有阴影的问题
- requestCloud 函数透传 extData 的问题

### 2.18.2 (2024-04-11)

**新功能**

- 增加云能力 api & 原生设备路由

**新功能**

- 新增 RJS 与 SJS 之间通信模式
- 增加 requirePlugin 关联 usingPlugins 的检测
- 支持解析 launchOptions 切套对象的字段

**修复**

- 修复 TTT 函数异常未捕获的问题

### 2.17.3 (2024-03-28)

**新功能**

- 新增 requirePlugin 获取插件方法
- 新增以下原生路由跳转方法
- ipc-player 增加 isConnected isOnPreview 操作方法

**修复**

- 修复 eventChannel 以 url 为 key 引起的查找问题
- **core:** 修复 movable-view 组件 animation 设置未生效的问题

### 2.17.2 (2024-03-20)

**新功能**

- 逻辑层 mock Promise 实现捕获 unhandledRejection

**修复**

- 修复 requestCloud 调用的问题
- 修复 setData 视图层 paths 路径计算错误的问题
- **core:** 修复 diff 算法取 key 对比的问题
- **textarea:** 修复末尾换行符未撑开高度的问题

**修复**

- 修复 浅比较 对象 keys 顺序差异的问题
- 修复 serializeCopy 拷贝丢失 null 的问题
- 修复功能页 app 未触发 onReady 的问题
- 修复功能页 getApp 返回空对象的问题
- **components:** v2.14.10~11
- **core:** 修复 catch 事件在 sjs 模式下的优先级问题
- **core:** 修复事件处理 parentNode 可能不存在的问题
- **host-config:** 修复 vnode 空事件函数的问题
- **sub-package:** 修复页面查询相对路径错误的问题

### 2.15.15 (2024-02-04)

**新功能**

- 添加跳转 Native 路由(app扫码/场景/配置设备/户外)

**修复**

- 修复内置组件自定义属性无法添加的问题
- 修复自定义组件 optionalTypes 属性视图层格式化错误的问题

### 2.15.12 (2024-01-16)

**新功能**

- 增加 i18n.has 用于检测云端多语言存在

**修复**

- 修复 event-channel 实例缺少 this 指针
- 修复 swiper 在 taro ray 下的构建问题
- 修复 swiper catch 元素失效 & autoplay 的问题

### 2.15.9 (2024-01-03)

**修复**

- 修复 eventChannel 的获取问题
- 修复 launchOptions 浅复制引起的问题
- 修复 redirectTo 替换当前 tabBar 页面缓存未清空的问题

### 2.15.7 (2023-12-20)

**新功能**

- 增加 ty.hideMenuButton ty.showMenuButton API 模拟

**修复**

- 修复自定义组件 rjs 基于 scope 查找不到的问题

### 2.15.6 (2023-12-12)

**新功能**

- OTA 添加排队中的状态

**修复**

- fix: scroll-view refresherDefaultStyle 默认白色不生效的问题

### 2.15.4 (2023-12-04)

**新功能**

- scroll-view 支持 refresherDefaultStyle=auto 自适应主题

**修复**

- 修复 button submit 事件缺少 composed 的问题

### 2.15.2 (2023-11-29)

**新功能**

- 修复 rjs 功能页隔离的问题

### 2.15.1 (2023-11-17)

**新功能**

- 逻辑层 gtag 埋点 api
- web-view 组件支持双向通信
- webviewContext 支持 reload 方法

**修复**

- 兼容异层api未传参数
- 事件监听机制未检测 Function 的问题
- 修复 gtag 执行 undefined 的问题
- 修复 web 模式下 web-view 的加载问题
- picker 组件日期中文的问题

### 2.14.5 (2023-11-10)

**修复**

- 修复 canvas webgl 的渲染问题
- 修复 shortHash 运行时的字符问题

**回退**

- fix: 修复 shortHash 运行时的字符问题

### 2.14.3 (2023-11-03)

**修复**

- 修复 input password 模式选中的问题

### 2.14.2 (2023-11-01)

**修复**

- 调整框架错误埋点分类
- 修复 catch 嵌套 scroll-view 阻止滚动的问题
- 修复 IDE 模拟 touch 的 picker-view 的滚动问题
- 修复 input 无法复制的问题 & 修复 getImageData 错误的问题
- 修复 prod 加载功能页环境异常的问题
- getDeviceRoomInfo 异常上报过滤
- searchVnodeByLeafPath paths undefined问题

### 2.14.1 (2023-10-13)

**新功能**

- 面板 OTA 更新支持

**新功能**

- 小程序运行环境依赖 darkmode
- 新增 darkmode 配置项
- 新增 iframe 标签开放支持
- Component properties 支持 optionalTypes 多类型

**修复**

- 蓝牙 bleCover 属性不生效问题处理
- 修复 raypack 模板函数 modalRoot 顺序错误的问题
- 修复跨自定义组件 radio-group 丢失的问题
- 修复自定义事件 compose 冒泡的问题

### 2.13.3 (2023-09-28)

**新功能**

- 内置 atop 接口

**修复**

- 修复事件系统在 Component 上的冒泡问题

### 2.13.2 (2023-09-21)

**修复**

- 修复 app.onShow 在 ty.navigateBackMiniPromgram 丢失 extraData 的问题

### 2.13.1 (2023-09-20)

**新功能**

- 增加 FMP 首屏性能埋点
- 支持 longpress longtap 事件
- rich-text 组件新增开放 video 标签
- widget 支持 longpress longtap 事件

**修复**

- 修复 Behavior.observes 未触发的问题
- 修复 page-container 组件 click 事件冲突的问题

**修复**

- 修复 button.feedback 在 Android 下未隐藏 loading 的问题
- 修复 tap 事件 detail 未返回 x y 的问题
- 修复多语言在 IDE 调试环境优先级的问题

### 2.12.19 (2023-09-05)

**修复**

- 非 native 环境下捕获 promise 错误的问题
- 修复 scroll 事件可能被阻止冒泡导致未触发的问题
- 修复 widget.onThemeChange 未触发的问题
- 修复业务 js 执行报错日志未展示的问题

### 2.12.18 (2023-09-01)

**新功能**

- 日志能力 & button 新增 open-type=feedback 能力
- Widget 支持动态设置高度

**修复**

- 修复 input 组件 indent-end 未作用于 placeholder 的问题
- 修复 input 组件 indent-start 未作用于 placeholder 的问题
- 修复 onReachBottom 在下拉刷新异常触发的问题
- 修复 picker-item 在 华为 P40 下的高度不正确的问题
- 修复 textarea 设置 value = '' 不生效
- 修复 widget.onThemeChange 在 IDE 异常的问题
- 修复含滚动条元素在各端表现不一致的问题
- 修复加载功能页 prod 模式下的问题
- 修复模板 unicode 文案展示的问题

### 2.12.15 (2023-08-16)

**新功能**

- 新增功能页 app 启动模式
- 增加首屏信息埋点
- 增加页面 pureRoute 路径

**修复**

- 修复 input text-transform 未生效的问题
- 修复 amd 模块提示名缺失的问题
- 修复 es6-polyfill 缺少环境注入的问题
- 修复 promise unhandledRejection 未捕获的问题
- path 路由参数解析关于数组格式的问题

### 2.12.14 (2023-08-14)

**修复**

- 调整详情页配置信息

### 2.12.13 (2023-08-09)

**修复**

- 修复 rich-text 响应 a 标签优先级的问题

### 2.12.12 (2023-08-02)

**新功能**

- Page 支持 behaviors 配置
- rich-text 增加 bind:select 事件

**修复**

- 相对路由缺省缺未支持的问题
- 修复 input textarea placeholder 未截断的问题
- 修复 dataset 丢失 Function 类型的问题
- 修复 input 组件在 iOS 14.3 上的表现问题
- 修复 iOS 14.2 重复触发 onOrientationChange 的问题
- 修复功能页跳转丢失 eventChannel 的问题
- 异层组件初始化时机改为ready
- 自定义组件 setData 引用引起 observer 的问题

### 2.12.10 (2023-07-17)

**修复**

- 面板 - 群组不显示离线窗口
- 修复 input placeholder 中文输入法的问题
- 增加 widget options 参数 & 对 loadOptions.query 进行错误提示
- vConsole 展示错误日志的问题

### 2.12.9 (2023-07-14)

**修复**

- 修复 input confirm 回调 value 为空的问题

### 2.12.8 (2023-07-10)

**修复**

- 未支持 Cat.1 设备判定的问题
- 修复 input placeholder 未清空的问题

### 2.12.6 (2023-07-06)

**新功能**

- 增加 page-meta 标签 & ty.setPageStyle API

**修复**

- 修复 functional 页面加载 entryCode 优先级的问题
- 修复获取页面配置未进行 hash 的问题
- 修复默认 properties 返回默认值的问题
- Android setTimeout 浮点数的兜底
- canvas 主动进行垃圾回收
- input value & maxLength 同时更新的问题

### 2.12.5 (2023-06-27)

**修复**

- 修复 dataset 大小写转化的问题

### 2.12.4 (2023-06-27)

**修复**

- 适配 navigationStyle 为 custom 时 bletoast 距离顶部的高度
- 修复 getRelationNodes 匿名化获取不正确的问题

### 2.12.3 (2023-06-16)

**修复**

- 修复 setData 队列未触发 observer 的问题

### 2.12.2 (2023-06-14)

**新功能**

- 增加 page.addLifecycle 动态生命周期的功能

**修复**

- 错误信息上报
- 修复 picker-view 与 catch 事件冲突的问题
- 修复 ty.createIntersectionObserver 缺省值的问题
- 修复 vnode patch 错误的问题
- 修复 vtree 未处理 catch 以及 bind: 事件的问题

### 2.12.1 (2023-06-07)

**新功能**

- 内置 React VNode 模板格式

**修复**

- **VERSION:** 注入逻辑的问题
- 修复 dataset 属性存在 update 标记的问题
- 修复 slider catchtouchmove 冲突的问题
- 修复 text 连续 `\n` 未生效的问题
- 修复 textarea input \n 换行符的问题
- settings 不存在的问题

**修复**

- 功能页没有 appConfig
- 修复 input textarea 与 label 联动的问题
- scroll-view refresherTriggered 状态切换的问题

### 2.11.10 (2023-05-30)

**修复**

- 修复 text 标签不支持换行的问题
- 修复 text 标签文本处理的问题
- 修复 touch-emulator 引起的 input textarea focus 问题
- sjs change 提示错误的问题

### 2.11.9 (2023-05-22)

**修复**

- 修复 canvas 节点 style 问题
- 修复 focus blur 未触发 sjs 的问题
- canvas 业务依赖 position 的问题
- iframe 异层组件属性变更的问题
- **textarea:** 修复 value 值维护错误的问题

### 2.11.7 (2023-05-15)

**修复**

- 修复快速 setData 渲染不及时的问题
- host 样式重复添加的问题
- picker-view 初始化 columns 不存在的问题

### 2.11.6 (2023-05-11)

**修复**

- 修复 page-container custom-style 设置圆角的问题
- 修复 picker 组件可选超出范围值的问题

### 2.11.5 (2023-05-10)

**修复**

- 修复 canvas 默认阻止冒泡的问题
- 修复 iframe onLoad 事件未触发的问题
- 修复面板进入 widget preview 版本的问题

**性能优化**

- 优化 onReachBottom 会多次事件触发的问题

### 2.11.3 (2023-04-27)

**新功能**

- 升级 builtin-components 组件 支持 iframe
- 增加 getThemeInfo 接口 & 异层 iframe

**修复**

- 判断运行模式联调模式下重试 10 次
- 升级 builitin 组件修复 canvas 问题
- 视图层浏览器模式下 orientationchange 的问题
- 修复 sjs change 为空的问题
- 页面方法名提示用户自定义的方法
- 增加 iframe message 监听
- i18n 容错避免无多语言阻塞
- iOS 11 IntersectionObserver 兼容问题
- viewLoad 重复发送的问题
- webview src动态更新

### 2.11.1 (2023-04-13)

**新功能**

- worker 开放限制 & console 代理
- 1. slot 模式重构简单元素
- 标签名添加 meta:tag 属性预留功能
- 处理异层事件vnode查找
- 单 slot 嵌套切换
- 对模板的 proto 方法进行警告处理
- 多 slot 的 创建
- 黑色主题
- 基于 vnode 节点的操作
- 兼容旧版 IDE 构建产物 & 2.x 容器
- 离线组件添加返回首页按钮
- 逻辑层的 setData 渲染应在微任务队列中执行
- 面板 API 添加参数，用于配置是否需要主动连接蓝牙设备
- 面板蓝牙漫游功能
- 升级 @tuya-miniapp/builtin-components
- 升级 vConsole 支持 console.group console.groupEnd 事件
- 实现 ty.canIUse API
- 同步 v2.10 面板逻辑
- 增加 mothra.tag 的标记
- 增加 meta 的信息读取
- 增加 ty.nextTick API
- 增加退出事件拦截API ty.onAppClose
- 支持运行时配置 dangerouslyDisableRjsScope
- 自定义组件使用 t- 作为前缀,避免与 web-components 冲突
- 组件 props 添加顺序
- add groupSetData
- body 增加 host 样式
- mockGlobal 在视图层也进行
- PC 客户端事件模拟
- **shared:** add randomHash method
- sjs 增加 getDate 方法
- sjs change
- slot 后置
- slot 节点更新
- slot 移除以及切换
- systemInfo 增加 containerVersion 字段
- vconsole 增加 FPS 监控
- vConsole 增加 messageChannel 信息统计
- **vConsole:** 增加通信数据体积维度统计
- widget 适配新版渲染模型
- widget 支持 isDisablePadding
- widget 支持内置组件事件
- widget 支持TTT和主题事件

**新功能**

- 补充 view 原生交互事件
- 单向数据流
- 调整逻辑层 vconsole 基于 appHooks 完成初始化
- 多语言兼容
- 分离 appChannel 包
- 更新 panel 的逻辑 ([4813e64](https://registry.code.tuya-inc.top/baselibrary/mothra-framework/commits/4813e646051cf84d998a042c96cf0707a3344f55)), closes [/registry.code.tuya-inc.top/godzilla/mothra/-/merge_requests/429/diffs#diff-content-af49747625816b147e4ed9aea328033ede0bf0](https://registry.code.tuya-inc.top//registry.code.tuya-inc.top/godzilla/mothra/-/merge_requests/429/diffs/issues/diff-content-af49747625816b147e4ed9aea328033ede0bf0)
- 兼容 返回 SDKVersion 版本信息
- 兼容 data 类型
- 拦截 request storage
- 逻辑层 propObserver
- 面板输出节点类型
- 模板节点性能提示
- 内敛样式支持 css 变量
- 取消对旧版 ty 的兼容
- 事件池
- 事件对象dataset获取
- 视图层发attached, ready事件到逻辑层
- 视图层渲染器支持传入propObserver
- 视图层支持web Components内置组件
- 新增 ty.setNavigationBarBack
- 验证 Component 的字段
- 页面事件调度
- 页面事件支持
- 异层二期
- 异层组件上下文
- 异层组件通信
- 优化首屏渲染传输数据量
- 增加 app.onReady 事件
- 增加 appChannel 小程序通信功能
- 增加 touch 事件模拟
- 增加 ty.onAppEvent api
- 增加 widget onLoad 参数
- 支持 externalClasses 外部样式
- 支持 externalClasses 外部样式
- 支持 intersectionObserver 多 query
- 支持 rem 单位
- 支持 slot 参数检测
- 支持内置组件的自定义事件
- 支持内置组件属性 optionalTypes
- 支持自适应 & 修复 style 更新的问题
- 支持canvas
- 自定义事件冒泡
- 自定义组件换件检测
- 自定义组件嵌套渲染
- 自定义组件relations
- 自定义组件setData, properties更新局部渲染
- 组件内支持 class prefix 查询
- 组件配置检测
- animation 能力
- animation 支持 rpx 单位
- behavior definition filter
- behaviors
- builtin-components 升级
- component relations 匿名化路径
- component selectComponent
- composed 事件冒泡
- createSelectorQuery
- customElements 兼容性支持
- detached 触发
- device api 拦截支持移除 TYBLE
- device api 拦截支持移除 TYBLE
- event dataset 支持原数据类型
- getRelationNodes 方法
- i18n
- IDE 运行插件
- intersection observer ready check
- intersectionObserver
- ipc-cloud-player,color-picker
- ipc新增api, disableNative
- observers 字段名检测
- page 运行上下文
- page 字段更新 update 匹配
- page lifecycle
- page.selectAllComponents
- page.selectComponent
- PC 拖动滚动模拟
- plugin-vconsole
- properties 保留字提示
- property standardized
- pureDataPattern
- pureDataPattern 视图层
- Render js & i18n
- resetStyleDeclaration & parseStyles
- setData back
- setStyle 支持 CSSStyleDeclaration
- shadowRoot 内节点 touch 事件模拟
- sjs 事件对象
- sjs amd
- sjs change:prop
- sjs triggerEvent 事件队列
- triggerEvent
- ty.panel 面板能力
- vconsole 小程序节点
- web-view 不支持设置样式
- web-view异层事件
- widget
- widget 多尺寸流式布局
- widget 增加 i18n
- widget 支持多尺寸
- widget 主题色支持
- widget mock API
- widget onPageScroll
- wxs getComputedStyle

**修复**

- 更新离线展示逻辑监听丢失的问题
- 修复内置组件 hidden 不生效的问题

**修复**

- sjs change 时间触发的时机问题 & 初始化 oldValue 值不对
- template.version 的判断
- 处理双模设备，wifi 上线时会弹出连接成功弹窗
- 代码格式化
- 兜底逻辑层视图层初始化通信池的问题
- 多次渲染 dom-ready 检测错误问题
- 兼容IDE touch事件不识别
- 离线双模设备在连接状态差时显示了离线提示框，但没显示内容
- 逻辑层 composeVnode 跨层树
- 逻辑层 setData 流程
- 面板元素点击遮挡的问题
- 全局样式顺序问题
- 生命周期使用 广度优先 遍历
- 视图层 prop 未发生变化出发 setAttributes 的问题
- 视图层 UI 更新 observer 可能滞后的问题
- 视图层 window 屏蔽暂开放
- 视图层处理 patchData split data 渲染异常的问题
- 提示内的中文
- 系统事件的 webviewId 比对
- 下一个节点是 slot 的插入类型错误
- 新建元素判断 next 是否存在
- 修复 triggerEvent 默认 detail 是 {} 的问题
- 修复 :host 权重引起的样式问题
- 修复 Android 环境启动函数化的问题
- 修复 canvas rjs 通信无法查找到元素的问题
- 修复 canvas 副作用造成 ready 生命周期异步的问题
- 修复 debug 模式下展示了 $dataBytes 的问题
- 修复 event.path 兼容问题
- 修复 iOS 下 webview 启动进程的问题
- 修复 movable-view 组件初始化状态问题
- 修复 observers 调用引起 observer 触发异常的问题
- 修复 observers 数据获取不正确的问题
- 修复 ready 生命周期触发早于 DOM ready 的问题
- 修复 sjs triggerEvent 对组件节点查找错误的问题
- 修复 slot 的嵌套问题
- 修复 template 更新异常的问题
- 修复 webkit 前缀的样式丢失的问题
- 修复 widget widgetJsBridge 缺少 pageId 参数
- 修复初次 property.observer 未执行的问题
- 修复多层组件嵌套获取节点 rect 错误的问题
- 修复事件队列执行与 setData 组合使用的场景问题
- 修复视图层 ready 触发的时机问题
- 修复页面初始化 onLoad setData 数据快照的问题
- 修复组件初始化逻辑同步问题
- 渲染相关事件队列错误的问题
- 页面 detached 后异步执行 SelectorQuery 的报错问题
- 页面组件实例 函数传递指针丢失的问题
- 依赖冗余
- 异层组件事件触发问题
- 原生组件处理 hover-class 的方式
- 执行 property.observer 未捕获错误的问题
- 中文提示
- 自定义组件 tag 名切换引起样式丢失的问题
- 组件 undefined 的问题
- add dataset field
- amd-engine 引擎升级
- ancestor relation 的异常
- android ttt 通道可能未建立的问题
- attached 事件触发异常的问题
- body 标签添加 meta:tag 标记
- catch 阻止冒泡事件触发异常的问题
- class 值可能为 true 的情况
- component.created 生命周期特殊处理
- composed 事件冒泡
- composeVnode 关联关系更新的问题
- composeVnode 链路未更新的问题
- created observers 等生命周期上下文的统一性
- css 变量不支持的问题
- css 无的状态下调用
- detached 生命周期递归执行的问题
- disableScroll 在 IDE 不生效的问题
- elem 元素获取
- execQuery
- getRelationNodes 返回类型总是为 [] 的问题
- getRelationNodes 返回值不为 [] 的问题
- getSystemInfo API 参数错误
- getSystemInfo poomisify 的问题
- hack 临时修复可能在 create 中 setData 导致数据不同步的问题
- id 丢失的问题
- image 标签在 safari 下的 报错问题
- image scaleToFill 样式错误
- in 操作符计算错误
- include 导入的 fragment 节点的渲染问题
- lodash.merge
- navigateTo 参数透传
- observer dataset 格式转换的问题
- observers & observer & setData 组合执行顺序的问题
- observers 函数执行错误捕获
- onLoad 参数
- Page 同步创建的问题
- page 页面初始化渲染数据不同步的问题
- page-container 的问题
- page-container 子元素事件冒泡的问题
- page.setData 未同步执行的问题
- panel 初始化过早的问题
- patch 深比较数据更新的问题
- patchData 数据字段 split 格式标准化的问题
- props 变更顺序的问题
- ready 生命周期执行在 attached 之前
- relations 的时机
- relations 执行错误的问题
- rjs 执行未进行 try catch
- selectComponent 返回实例问题
- selectorQuery 不存在的兼容
- setData 同步方法的顺序问题
- setData 异步导致渲染滞后的问题
- sjs 中设置的 style 被重置的问题
- sjs callMethod 方法在 page和组件内的调用报错
- sjs change 初始值为 null 的问题
- sjs change 事件调用的顺序问题
- sjsChangeObserver 参数固化
- slot + lifetime 生命周期错误的问题
- slot 对 web-component 的影响
- slot 多渲染切换问题
- slot 内外渲染不同步的的问题
- slot 嵌套渲染
- slot 切换的节点变更
- slot 切换关闭
- slot 渲染问题
- slot 元素递归添加
- slot 元素后创建的问题
- slot 元素切换顺序的问题
- slot 在 ty:if 节点下的渲染问题
- slot host
- split setData 视图不更新的问题
- tap 点击事件队列错误
- templateData 兼容旧构建产物
- ty.onAppEvent 未触发的问题
- ty.pageScrollTo 执行异常的问题
- tyif 元素切换新元素添加插入错误
- typeof
- updateFields 格式错误的问题
- updateFields 在新旧值上的变更
- v node 的使用
- vconsole 加载时机问题
- vconsole 上展示下拉刷新的元素
- vConsole 最大值显示错误
- view 视图层 sjs 可能修改数据的问题
- vnode 节点丢失
- widget pathHash 等同于页面路径
- widget ready 生命周期不触发的问题
- widget size值适配
- willMount 执行顺序误差问题
- worker 消息启动 buffer 缓存

**修复**

- data 弱引用
- ty*json* 匿名化
- ?改为类型判断
- 处理报错
- 传options到视图层
- 单 slot 提示移除
- 但节点文本渲染异常的问题
- 多次slot嵌套问题
- 更新节点 vnode 未更新的问题
- 更新widget buildin
- 共享 BuiltinCustomEvents
- 加依赖
- 加依赖
- 兼容 execQuery 视图层 ready 逻辑
- 兼容 getNativeKits返回值
- 兼容children不存在情况
- 兼容widget tiny_1.0 small_1.0
- 逻辑层更新问题
- 逻辑层自定义组件嵌套
- 内置组件事件发送机制 无绑定无需发送
- 内置组件属性值序列化的问题
- 内置组件text换行处理
- 屏幕旋转导致样式全部渲染的问题
- 删除不用的监听
- 视图层组件 detached
- 视图在真机特殊场景上可能滞后的问题
- 双模设备离线提示弹窗，在关闭手机蓝牙时不应弹窗
- 文本不支持 \n br 换行的问题
- 修复 自定义组件 property 数据错误的问题
- 修复 animation 与 style 顺序冲突的问题
- 修复 observer 在破折号属性名情况下不生效的问题
- 修复 usingComponents 关系链接错误的问题
- 页面可横向滚动的问题
- 页面astConfigPath绑定
- 依赖安装
- 依赖修改
- 移除表达式的 vnode 兼容 key for-item for-index
- 引用路径修改
- 运行时 this 错误
- 支持换行符 \n 字符串
- 子作用域的 usingComponents 错误
- 自定义子节点渲染问题
- 自定义组件 slot 内 className 计算错误的问题
- 自定义组件对内置组件进行 composed 事件模拟
- 自定义组件属性设置异常
- 自定义组件子节点渲染
- 自定义组件class问题
- amd getCanvasId
- animation 默认属性不在 property 列表上的问题
- app ready
- app-hooks导出
- app.onUnload 生命周期未监听的问题
- attrs 的格式处理
- base64 图片内敛样式解析错误的问题
- behavior lifetimes 优先级
- body 默认样式设置, margin-top 溢出的问题
- body margin-top 溢出的问题
- catch 事件 SJS 异常的问题
- class without module
- component \_\_pageId
- Component 初始化调用 observers 的问题
- component 初始化未触发 observer 的问题
- component pageId 不严谨的 bug
- component setData 丢失数据
- createText null
- css-helper
- data 无法设置的问题
- deps
- directive 不再传入
- env 多语言配置
- env 运行时判断 debugOn
- event pool loop
- IDE 调试对接
- ios 11 点击
- messageBridge
- mock global this
- movable-view animation 冲突
- node_modules 匿名化
- observer 执行顺序
- observers 字段名检测
- panel 面板语言
- parentNode 不存在的问题
- patch 使用 smartAssign 的问题
- picker 组件内部触发页面滚动的问题
- prop change
- properties 不存在的兼容错误
- properties 计算错误的问题
- relation 返回组件instance
- relations 支持缺省路径的不规范实现
- relativeToViewport 优先级最低
- rem 在 Android 下最小为 8px
- resize 事件缺失
- rjs view pageId 不存在的问题
- setData 可重定义
- sideEffects移除
- SJS 事件 triggerEvent 在逻辑层响应的问题
- slot更新后渲染文本
- slot渲染字符串
- template 模板错误提示
- text 文本解析
- Text not defined
- text渲染换行和事件处理
- timestamp
- timeStamp 格式
- ty.pageScrollTo 导出的错误问题
- typo
- up text tag
- usingComponents shortHash
- vconsole 通信错误
- verifyComponent 路径展示问题
- web 下拉刷新 picker-view-column 触发的问题
- webcomponent 自定义组件的 detail 属性
- widget 顶层样式
- widget i18n 在 runtime 中
- without Function

**回退**

- Revert "fix: remove hack 的解决办法"
