更新记录
1.0.0(2026-09-18) 下载此版本
1.0 发布
平台兼容性
uni-app x(5.25)
| Chrome | Safari | Android | iOS | iOS插件版本 | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|
| × | × | × | 26 | 1.0.0 | × | × |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| √ | √ | × |
uni-glass-modal
基于 uni-app x glass-effect-view 实现的 iOS 液态玻璃弹框示例,提供普通提示、文本输入、明暗主题适配和接近 uni.showModal 的回调结果。
仅适用于 App iOS,系统版本需为 iOS 26 或更高。iOS 26 以下降级为系统毛玻璃效果。本示例使用 uni-app x Vapor 模式。
功能
- 使用原生
glass-effect-view呈现液态玻璃效果 - 支持有标题、无标题、单按钮和双按钮布局
- 支持
editable文本输入及键盘避让 - 支持自定义按钮文案和颜色
- 跟随应用主题及系统明暗主题
- 默认按钮文案适配简体中文、繁体中文、英语、西班牙语和法语
- 提供
cancel、confirm和complete事件
运行示例
- 使用 5.25+ HBuilderX 导入示例项目。
- 选择 iOS 26 或更高版本的真机或模拟器。
- 运行到 App iOS。
首页包含普通弹框、无标题、长标题、自定义按钮、可编辑内容等示例。
接入组件
将插件目录放入 uni-app x 项目的 uni_modules 目录:
uni_modules/uni-glass-modal
└── components
└── uni-glass-modal
├── uni-glass-modal.uvue
├── types.uts
└── useTheme.uts
组件通过 visible 受控显示。调用方需要在 complete 事件中将 visible 设置为 false。
<template>
<button @click="openModal">显示弹框</button>
<uni-glass-modal
:visible="modalVisible"
title="提示"
content="是否继续执行该操作?"
:show-cancel="true"
@cancel="onCancel"
@confirm="onConfirm"
@complete="onComplete"
/>
</template>
<script setup>
import type { GlassModalResult } from '@/uni_modules/uni-glass-modal/components/uni-glass-modal/types'
const modalVisible = ref(false)
function openModal() {
modalVisible.value = true
}
function onCancel(result : GlassModalResult) {
console.log('cancel', result)
}
function onConfirm(result : GlassModalResult) {
console.log('confirm', result)
}
function onComplete(result : GlassModalResult) {
console.log('complete', result)
modalVisible.value = false
}
</script>
可编辑弹框
editable 为 true 时,content 是输入框的初始值;用户点击确认按钮后,可以从结果的 content 字段取得最终输入内容。
<uni-glass-modal
:visible="modalVisible"
title="添加备注"
content=""
:editable="true"
placeholder-text="请输入备注"
@confirm="onConfirm"
@complete="onComplete"
/>
Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
visible |
boolean |
false |
是否显示弹框 |
title |
string \| null |
'' |
标题;空值时不显示标题区域 |
content |
string \| null |
'' |
普通模式下的正文,编辑模式下的输入初始值 |
showCancel |
boolean \| null |
true |
是否显示取消按钮 |
cancelText |
string \| null |
null |
取消按钮文案;null 时使用本地化默认文案 |
cancelColor |
string.ColorString \| null |
null |
取消按钮颜色;null 时使用当前主题默认颜色 |
confirmText |
string \| null |
null |
确认按钮文案;null 时使用本地化默认文案 |
confirmColor |
string.ColorString \| null |
null |
确认按钮颜色;null 时使用当前主题默认颜色 |
editable |
boolean \| null |
false |
是否显示文本输入框 |
placeholderText |
string \| null |
'' |
输入框占位文案,仅编辑模式有效 |
Events
| 事件 | 参数 | 触发时机 |
|---|---|---|
cancel |
GlassModalResult |
用户点击取消按钮 |
confirm |
GlassModalResult |
用户点击确认按钮 |
complete |
GlassModalResult |
cancel 或 confirm 执行后 |
事件触发顺序为:
cancel 或 confirm -> complete
GlassModalResult
| 字段 | 类型 | 说明 |
|---|---|---|
cancel |
boolean |
用户是否点击了取消按钮 |
confirm |
boolean |
用户是否点击了确认按钮 |
content |
string \| null |
仅在编辑模式下确认时返回输入内容,其他情况为 null |
语言适配
当 cancelText 或 confirmText 为 null 时,组件会在每次打开前读取 uni.getAppBaseInfo().appLanguage,并选择对应的默认按钮文案。
| 应用语言 | 取消 | 确认 |
|---|---|---|
zh-Hans |
取消 | 确定 |
zh-Hant |
取消 | 確定 |
en |
Cancel | OK |
es |
Cancelar | Confirmar |
fr |
Annuler | Confirmer |
其他语言会回退到简体中文。修改系统中的应用语言后,重新打开弹框即可验证默认按钮文案。
主题适配
组件读取 appTheme 和 osTheme:
appTheme为light或dark时使用指定主题。appTheme为auto时跟随系统主题。- 运行期间主题变化会同步更新面板、正文、输入框、分割线和按钮颜色。
注意事项
- 组件不会在点击遮罩时关闭。
visible是受控属性,组件不会直接修改调用方状态;调用方应在结果事件或complete中隐藏弹框。

收藏人数:
下载插件并导入HBuilderX
在线体验/部署
下载示例项目ZIP
赞赏(0)
下载 1510950
赞赏 15
下载 12618359
赞赏 1949
赞赏
京公网安备:11010802035340号