更新记录
1.0.0(2025-08-12) 下载此版本
- 【新增】初始版本发布
- 【新增】支持友盟推送基础功能
- 【新增】支持通知设置、标签管理、别名管理等功能
平台兼容性
云端兼容性
阿里云 | 腾讯云 | 支付宝云 |
---|---|---|
√ | √ | √ |
uni-app x(4.66)
Chrome | Safari | Android | Android插件版本 | iOS | 鸿蒙 | 微信小程序 |
---|---|---|---|---|---|---|
- | - | 5.0 | 1.0.0 | - | - | - |
友盟推送API插件,用于uni-app应用中集成友盟推送服务。
介绍
本插件封装了友盟推送SDK的常用功能,支持Android平台,提供了包括初始化、通知设置、标签管理、别名管理等功能。
安装
在插件市场搜索 t-umeng-push-api
安装,或者直接导入插件项目。
权限说明
本插件需要以下权限:
<!-- 基础权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 位置权限(可选,用于地理围栏功能) -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
依赖说明
本插件依赖以下友盟SDK:
"dependencies": [
"com.umeng.umsdk:common:+",
"com.umeng.umsdk:asms:+",
"com.umeng.umsdk:push:+",
"com.umeng.umsdk:uyumao:+"
]
API 说明
类型定义
TUmentPushResult
推送操作结果类型
属性 | 类型 | 说明 |
---|---|---|
code | number | 结果代码,0表示成功,-1表示失败 |
msg | string | 结果消息 |
data | any | 返回数据(可选) |
TUmentPushOptions
推送操作选项类型
属性 | 类型 | 说明 |
---|---|---|
appKey | string | 友盟应用KEY |
messageSecret | string | 友盟应用messageSecret |
displayNotificationNumber | number | 通知显示数量 |
playSoundLightsVibrate | boolean[] | 通知响铃、震动、呼吸灯设置,例如:[true,true,true] |
noDisturbMode | number[] | 免打扰时间设置,例如:[23,0,7,0]表示23:00-07:00 |
enable | boolean | 推送功能开关 |
tags | string[] | 标签数组 |
alias | string | 别名 |
aliasType | string | 别名类型 |
success | (result: TUmentPushResult) => void | 成功回调函数 |
fail | (result: TUmentPushResult) => void | 失败回调函数 |
初始化与注册
register(options: TUmentPushOptions)
初始化并注册友盟推送服务。
参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
options | TUmentPushOptions | 是 | 配置选项 |
options 参数必填属性:
- appKey:友盟应用KEY
- messageSecret:友盟应用messageSecret
示例:
import { register, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
register({
appKey: '你的友盟AppKey',
messageSecret: '你的友盟MessageSecret',
success: (res: TUmentPushResult) => {
console.log('注册成功', res.data) // res.data 为设备token
},
fail: (err: TUmentPushResult) => {
console.error('注册失败', err.msg)
}
} as TUmentPushOptions)
通知设置
setNotificationOnForeground(options: TUmentPushOptions)
设置前台时不显示通知。
示例:
import { setNotificationOnForeground } from '@/uni_modules/t-umeng-push-api/utssdk/interface.uts'
setNotificationOnForeground({
success: (res) => {
console.log('设置成功')
},
fail: (err) => {
console.error('设置失败', err.msg)
}
})
setDisplayNotificationNumber(options: TUmentPushOptions)
设置通知显示个数。
options 参数必填属性:
- displayNotificationNumber:通知显示数量
示例:
import { setDisplayNotificationNumber, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
setDisplayNotificationNumber({
displayNotificationNumber: 5,
success: (res: TUmentPushResult) => {
console.log('设置成功')
},
fail: (err: TUmentPushResult) => {
console.error('设置失败', err.msg)
}
} as TUmentPushOptions)
setNotificationPlaySoundLightsVibrate(options: TUmentPushOptions)
设置通知响铃,震动,呼吸灯。
options 参数必填属性:
- playSoundLightsVibrate:分别对应响铃,震动,呼吸灯的布尔数组,例如:[true,true,true]
示例:
import { setNotificationPlaySoundLightsVibrate, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
setNotificationPlaySoundLightsVibrate({
playSoundLightsVibrate: [true, true, true], // 开启响铃、震动、呼吸灯
success: (res: TUmentPushResult) => {
console.log('设置成功')
},
fail: (err: TUmentPushResult) => {
console.error('设置失败', err.msg)
}
} as TUmentPushOptions)
setNoDisturbMode(options: TUmentPushOptions)
设置通知免打扰时间段。
options 参数必填属性:
- noDisturbMode:时间配置数组,格式为[startHour, startMinute, endHour, endMinute]
示例:
import { setNoDisturbMode, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
setNoDisturbMode({
noDisturbMode: [23, 0, 7, 0], // 23:00 - 07:00 免打扰
success: (res: TUmentPushResult) => {
console.log('设置成功')
},
fail: (err: TUmentPushResult) => {
console.error('设置失败', err.msg)
}
} as TUmentPushOptions)
推送功能控制
setEnable(options: TUmentPushOptions)
推送功能开启/关闭设置。
options 参数必填属性:
- enable:true = 开启,false = 关闭
示例:
import { setEnable, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
// 开启推送
setEnable({
enable: true,
success: (res: TUmentPushResult) => {
console.log('开启推送成功')
},
fail: (err: TUmentPushResult) => {
console.error('开启推送失败', err.msg)
}
} as TUmentPushOptions)
// 关闭推送
setEnable({
enable: false,
success: (res: TUmentPushResult) => {
console.log('关闭推送成功')
},
fail: (err: TUmentPushResult) => {
console.error('关闭推送失败', err.msg)
}
} as TUmentPushOptions)
setSmartEnable(options: TUmentPushOptions)
推送降耗设置。
示例:
import { setSmartEnable, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
setSmartEnable({
success: (res: TUmentPushResult) => {
console.log('设置成功')
},
fail: (err: TUmentPushResult) => {
console.error('设置失败', err.msg)
}
} as TUmentPushOptions)
setEnableYm(options: TUmentPushOptions)
禁止地理围栏功能(禁止获取位置信息、WiFi信息和基站信息)。
示例:
import { setEnableYm, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
setEnableYm({
success: (res: TUmentPushResult) => {
console.log('设置成功')
},
fail: (err: TUmentPushResult) => {
console.error('设置失败', err.msg)
}
} as TUmentPushOptions)
通知权限管理
isNotificationEnabled(options: TUmentPushOptions)
获取弹出通知权限状态。
示例:
import { isNotificationEnabled, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
isNotificationEnabled({
success: (res: TUmentPushResult) => {
console.log('通知权限状态:', res.data) // true: 已开启, false: 已关闭
},
fail: (err: TUmentPushResult) => {
console.error('获取失败', err.msg)
}
} as TUmentPushOptions)
openNotificationSettings(options: TUmentPushOptions)
打开系统通知权限设置界面。
示例:
import { openNotificationSettings, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
openNotificationSettings({
success: (res: TUmentPushResult) => {
console.log('打开设置界面成功', res.data) // true: 成功, false: 失败
},
fail: (err: TUmentPushResult) => {
console.error('打开设置界面失败', err.msg)
}
} as TUmentPushOptions)
标签管理
addTags(options: TUmentPushOptions)
添加标签。
options 参数必填属性:
- tags:标签字符串数组
示例:
import { addTags, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
addTags({
tags: ['tag1', 'tag2', 'tag3'],
success: (res: TUmentPushResult) => {
console.log('添加标签成功')
},
fail: (err: TUmentPushResult) => {
console.error('添加标签失败', err.msg)
}
} as TUmentPushOptions)
deleteTags(options: TUmentPushOptions)
删除标签。
options 参数必填属性:
- tags:标签字符串数组
示例:
import { deleteTags, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
deleteTags({
tags: ['tag1', 'tag2'],
success: (res: TUmentPushResult) => {
console.log('删除标签成功')
},
fail: (err: TUmentPushResult) => {
console.error('删除标签失败', err.msg)
}
} as TUmentPushOptions)
getTags(options: TUmentPushOptions)
获取标签。
示例:
import { getTags, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
getTags({
success: (res: TUmentPushResult) => {
console.log('获取标签成功', res.data) // 标签数组
},
fail: (err: TUmentPushResult) => {
console.error('获取标签失败', err.msg)
}
} as TUmentPushOptions)
别名管理
addAlias(options: TUmentPushOptions)
添加别名。
options 参数必填属性:
- alias:别名
- aliasType:别名类型
示例:
import { addAlias, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
addAlias({
alias: 'user123',
aliasType: 'userId',
success: (res: TUmentPushResult) => {
console.log('添加别名成功')
},
fail: (err: TUmentPushResult) => {
console.error('添加别名失败', err.msg)
}
} as TUmentPushOptions)
setAlias(options: TUmentPushOptions)
设置别名(会覆盖之前的别名)。
options 参数必填属性:
- alias:别名
- aliasType:别名类型
示例:
import { setAlias, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
setAlias({
alias: 'user456',
aliasType: 'userId',
success: (res: TUmentPushResult) => {
console.log('设置别名成功')
},
fail: (err: TUmentPushResult) => {
console.error('设置别名失败', err.msg)
}
} as TUmentPushOptions)
deleteAlias(options: TUmentPushOptions)
删除别名。
options 参数必填属性:
- alias:别名
- aliasType:别名类型
示例:
import { deleteAlias, TUmentPushResult, TUmentPushOptions } from '@/uni_modules/t-umeng-push-api'
deleteAlias({
alias: 'user123',
aliasType: 'userId',
success: (res: TUmentPushResult) => {
console.log('删除别名成功')
},
fail: (err: TUmentPushResult) => {
console.error('删除别名失败', err.msg)
}
} as TUmentPushOptions)
完整使用示例
import {
register,
setNotificationOnForeground,
setDisplayNotificationNumber,
setNotificationPlaySoundLightsVibrate,
setNoDisturbMode,
setEnable,
setSmartEnable,
setEnableYm,
addTags,
addAlias,
TUmentPushResult,
TUmentPushOptions
} from '@/uni_modules/t-umeng-push-api'
// 初始化友盟推送
register({
appKey: '你的友盟AppKey',
messageSecret: '你的友盟MessageSecret',
success: (res: TUmentPushResult) => {
console.log('注册成功', res.data) // 设备token
// 设置前台不显示通知
setNotificationOnForeground({
success: (res: TUmentPushResult) => console.log('设置前台不显示通知成功')
} as TUmentPushOptions)
// 设置通知显示数量
setDisplayNotificationNumber({
displayNotificationNumber: 5,
success: (res: TUmentPushResult) => console.log('设置通知显示数量成功')
} as TUmentPushOptions)
// 设置通知声音、震动、呼吸灯
setNotificationPlaySoundLightsVibrate({
playSoundLightsVibrate: [true, true, true],
success: (res: TUmentPushResult) => console.log('设置通知提示方式成功')
} as TUmentPushOptions)
// 设置免打扰时间
setNoDisturbMode({
noDisturbMode: [23, 0, 7, 0], // 23:00 - 07:00
success: (res: TUmentPushResult) => console.log('设置免打扰时间成功')
} as TUmentPushOptions)
// 开启推送
setEnable({
enable: true,
success: (res: TUmentPushResult) => console.log('开启推送成功')
} as TUmentPushOptions)
// 设置推送降耗
setSmartEnable({
success: (res: TUmentPushResult) => console.log('设置推送降耗成功')
} as TUmentPushOptions)
// 禁用地理围栏功能
setEnableYm({
success: (res: TUmentPushResult) => console.log('禁用地理围栏功能成功')
} as TUmentPushOptions)
// 添加标签
addTags({
tags: ['vip', 'active'],
success: (res: TUmentPushResult) => console.log('添加标签成功')
} as TUmentPushOptions)
// 添加别名
addAlias({
alias: 'user123',
aliasType: 'userId',
success: (res: TUmentPushResult) => console.log('添加别名成功')
} as TUmentPushOptions)
},
fail: (err: TUmentPushResult) => {
console.error('注册失败', err.msg)
}
} as TUmentPushOptions)
注意事项
- 使用前需要在友盟平台注册应用并获取AppKey和MessageSecret
- 本插件仅支持Android平台
- 如需使用地理围栏功能,请确保已申请相关位置权限
- 推送消息的接收需要在友盟后台配置或通过服务端API发送
常见问题
- 初始化失败:请检查AppKey和MessageSecret是否正确
- 无法收到推送:检查设备网络状态,以及是否已开启通知权限
- 标签或别名操作失败:可能是网络问题或参数格式不正确