更新记录
1.0.0(2026-04-17)
- 支持 Android 拉起系统邮件编辑器
- 支持 Android 拉起系统短信编辑器
- 支持 iOS 拉起系统邮件编辑器
- 支持 iOS 拉起系统短信编辑器
- 支持预填收件人、主题、正文、附件
- 统一返回 opened、sent、saved、cancelled、failed 等结果
平台兼容性
uni-app(4.75)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | × | × | × | √ | √ | √ | √ | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.75)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | √ | √ | × | × |
austin-message
统一拉起 Android / iOS 系统邮件与短信编辑器,支持预填收件人、主题、正文、附件,并返回统一结果结构。
适用场景
- 问题反馈邮件
- 账单、合同、对账单邮件转发
- 客服联系
- 邀请短信
- 故障日志上报
模板页
当前插件下的 index.vue 是完整模板页,按真实业务场景拆成:
- 反馈邮件
- 账单转发
- 邀请短信
模板页不是按钮说明书,而是一个“系统消息工作台”,便于直接改字段测试。
manifest 配置
无需额外配置危险权限。
- Android:插件内已集成
FileProvider,用于给邮件附件临时授权读取 - iOS:无需额外权限声明
API
getMessageComposeCapabilities()
返回当前设备的系统消息编辑能力。
| 参数 | 说明 | 类型 |
|---|---|---|
supported |
当前平台是否支持插件 | Boolean |
platform |
平台标识 | String |
canComposeEmail |
是否可拉起邮件编辑器 | Boolean |
canComposeSms |
是否可拉起短信编辑器 | Boolean |
canAttachEmail |
是否支持邮件附件 | Boolean |
canAttachSms |
是否支持短信附件 | Boolean |
supportsHtmlEmail |
邮件正文是否支持 HTML | Boolean |
notes |
当前平台补充说明 | String |
composeEmail(options)
拉起系统邮件编辑器。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
to |
收件人列表 | String[] |
[] |
cc |
抄送列表 | String[] |
[] |
bcc |
密送列表 | String[] |
[] |
subject |
邮件主题 | String |
'' |
body |
邮件正文 | String |
'' |
isHtml |
邮件正文是否按 HTML 处理 | Boolean |
false |
attachments |
邮件附件列表 | MessageComposeAttachment[] |
[] |
success |
成功回调 | Function |
- |
fail |
失败回调 | Function |
- |
complete |
完成回调 | Function |
- |
composeSms(options)
拉起系统短信编辑器。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
recipients |
短信收件人列表 | String[] |
[] |
body |
短信正文 | String |
'' |
attachments |
短信附件列表 | MessageComposeAttachment[] |
[] |
success |
成功回调 | Function |
- |
fail |
失败回调 | Function |
- |
complete |
完成回调 | Function |
- |
MessageComposeAttachment
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
path |
附件路径,支持绝对路径、file://、unifile://cache/... |
String |
'' |
name |
自定义附件名 | String |
'' |
mimeType |
自定义 MIME 类型,邮件附件优先使用 | String |
'' |
mimeType 是文件类型标识,例如:
- PDF:
application/pdf - PNG:
image/png - JPG:
image/jpeg - 文本:
text/plain
大多数常见文件可以不手动填写,插件会优先根据 name 或文件路径后缀自动推断。只有在文件没有标准后缀、后缀不准确,或你想强制指定附件类型时,才建议手动传入 mimeType。
返回结构
composeEmail 与 composeSms 使用同一套返回结构:
| 参数 | 说明 | 类型 |
|---|---|---|
ok |
调用是否成功 | Boolean |
platform |
平台标识 | String |
channel |
通道,email 或 sms |
String |
action |
行为结果,可能为 opened / sent / saved / cancelled / failed |
String |
errCode |
错误码 | Number |
errMsg |
错误说明 | String |
平台说明
- Android:邮件通常返回
opened,表示已成功打开系统邮件客户端;当前版本优先支持单个邮件附件,短信当前版本不承诺附件能力 - iOS:邮件依赖系统已配置邮箱账户;短信与邮件都能返回更明确的发送/取消状态
示例
import {
getMessageComposeCapabilities,
composeEmail,
composeSms,
} from '@/uni_modules/austin-message'
const capabilities = getMessageComposeCapabilities()
composeEmail({
to: ['support@example.com'],
subject: 'App 问题反馈',
body: '订单详情页切换网络后未刷新',
})
composeSms({
recipients: ['***'],
body: '你好,邀请你参加活动:https://example.com/invite',
})

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 606
赞赏 4
下载 11573281
赞赏 1905
赞赏
京公网安备:11010802035340号