Skip to content
广告位招租广告位招租

兼容端

安卓苹果Web鸿蒙小程序

介绍

本插件封装了友盟推送SDK的常用功能,支持Android平台,提供了包括初始化、通知设置、标签管理、别名管理等功能。

安装

在插件市场搜索 t-umeng-push-api 安装,或者直接导入插件项目。

权限说明

本插件需要以下权限:

xml
<!-- 基础权限 -->
<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:

json
"dependencies": [
  "com.umeng.umsdk:common:+",
  "com.umeng.umsdk:asms:+",
  "com.umeng.umsdk:push:+",
  "com.umeng.umsdk:uyumao:+"
]

API 说明

类型定义

TUmentPushResult

推送操作结果类型

属性类型说明
codenumber结果代码,0表示成功,-1表示失败
msgstring结果消息
dataany返回数据(可选)

TUmentPushOptions

推送操作选项类型

属性类型说明
appKeystring友盟应用KEY
messageSecretstring友盟应用messageSecret
displayNotificationNumbernumber通知显示数量
playSoundLightsVibrateboolean[]通知响铃、震动、呼吸灯设置,例如:[true,true,true]
noDisturbModenumber[]免打扰时间设置,例如:[23,0,7,0]表示23:00-07:00
enableboolean推送功能开关
tagsstring[]标签数组
aliasstring别名
aliasTypestring别名类型
success(result: TUmentPushResult) => void成功回调函数
fail(result: TUmentPushResult) => void失败回调函数

初始化与注册

register(options: TUmentPushOptions)

初始化并注册友盟推送服务。

参数说明:

参数类型必填说明
optionsTUmentPushOptions配置选项

options 参数必填属性:

  • appKey:友盟应用KEY
  • messageSecret:友盟应用messageSecret

示例:

typescript
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)

设置前台时不显示通知。

示例:

typescript
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:通知显示数量

示例:

typescript
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]

示例:

typescript
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]

示例:

typescript
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 = 关闭

示例:

typescript
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)

推送降耗设置。

示例:

typescript
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信息和基站信息)。

示例:

typescript
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)

获取弹出通知权限状态。

示例:

typescript
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)

打开系统通知权限设置界面。

示例:

typescript
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:标签字符串数组

示例:

typescript
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:标签字符串数组

示例:

typescript
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)

获取标签。

示例:

typescript
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:别名类型

示例:

typescript
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:别名类型

示例:

typescript
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:别名类型

示例:

typescript
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)

完整使用示例

typescript
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. 标签或别名操作失败:可能是网络问题或参数格式不正确