跳到主要内容

更新日志

仅列用户能感知到的功能变化。Bug 修复 / 内部重构不在此页。

设置项:新增 3 种类型 + JS 可反向声明

设置项支持新增 数字 / 日期 / 图片 三种类型:

Setting.number("fontSize")        // → Double
new Date(Setting.date("birthday")) // ms 时间戳,直接喂 Date()
this.bg = Setting.image("bgKey") // → "LL:{wid}/..." 路径

图片选完后会根据小组件里 image 组件的显示尺寸自动压缩,放心选大图。

还能从 JS 反向声明设置项,不必再去面板里一个个加:

Setting.add({ key: "city", name: "城市", type: "text" })
Setting.add({ key: "bg", name: "背景", type: "image" })

详见 配置读写 — Setting


设置面板 UI 优化

  • 整行可点(不必再凑去戳右边小铅笔)
  • 没填的项显示未设置灰色占位,提示用户去设
  • 长文本编辑改成独立 sheet + 多行 TextEditor,不再用挤巴巴的弹窗

占位符:无前缀也支持点号路径

{user.name}     ← 现在直接生效
{$.user.name} ← 旧版必须这样写,现在仍兼容

{var} 不再只是简单查变量名,还能逐层深入对象 / 数组。 循环里如果同名,加 $. 前缀强制读全局。

详见 占位符语法


循环:空数组不再"整段消失"

旧:数组为空 → 整个容器都不渲染(布局会塌)。 新:数组为空 → 容器仍在,只是循环出 0 项。

this.list = []   // 不再让容器消失,而是显示空白

详见 循环 Loop


URL 触发:JS 走异步执行

通过 awidget://runjs/... URL 触发的 JS,以前在主线程同步跑,可能卡 UI。 现在走异步线程,响应更顺,且可以正确等待网络请求结果。

按钮 / 快捷指令 / 实时活动里点 URL 后小组件没刷新的情况会少很多。


JS 变量:支持数组 / 字典

this.list = [1, 2, 3]            // ✅
this.user = { name: "A" } // ✅

以前只支持字符串和数字,数组 / 对象会被丢掉;现在可以原样保留并被占位符 / 循环消费。 配合上面"点号路径"和"循环"非常好用。


URL Scheme

每个小组件都自带一个 URL Scheme,可作回调:

console.log(Widget.urlscheme)
// awidget://runjs/medium/<widget-id>

打开它会重跑这个小组件的 JS。常用于按钮、快捷指令、灵动岛回调。

详见 小组件信息


iPad 支持

Omni 现在适配 iPad 屏幕尺寸。同一个小组件可在 iPhone / iPad 显示。


编辑器改进

  • 撤销 / 重做:误操作可回退
  • 工具栏重排:常用项更近
  • 属性行预览:不打开属性面板也能看到当前组件配置
  • SF Symbols 选择器搜索:输入关键词找图标
  • 首页编辑列表:支持跨层级拖拽,iOS 26 上的拖拽 / 预览问题修复

小细节

  • 文本默认缩放因子改为 0.9:大字号在小组件里更不容易被截断
  • 文本默认行数无限制:长文本能自然换行;需要单行的自己设
  • Widget 对象注入:JS 里直接 Widget.id / Widget.reload()
  • Widget.reload():JS 里直接触发当前类型小组件的全部刷新

如果你发现某项功能用法和文档不一致,可能是版本差异。可以在 GitHub 留 issue 或微博联系作者。