更新记录

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)

注意事项

  1. 使用前需要在友盟平台注册应用并获取AppKey和MessageSecret
  2. 本插件仅支持Android平台
  3. 如需使用地理围栏功能,请确保已申请相关位置权限
  4. 推送消息的接收需要在友盟后台配置或通过服务端API发送

常见问题

  1. 初始化失败:请检查AppKey和MessageSecret是否正确
  2. 无法收到推送:检查设备网络状态,以及是否已开启通知权限
  3. 标签或别名操作失败:可能是网络问题或参数格式不正确

隐私、权限声明

1. 本插件需要申请的系统权限列表:

具体查看 AndroidManifest.xml

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 友盟消息推送 SDK会采集数据,详情可参考:https://developer.umeng.com/docs/119267/detail/126061

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。