在 UniApp 中,UniPush(基于个推推送服务)的 deviceToken 用于标识设备,以便向特定设备推送消息。以下是获取和使用 deviceToken 的步骤:
获取 deviceToken
-
集成 UniPush 模块:
- 在 HBuilderX 中,确保项目已启用 UniPush。在
manifest.json 的 “App 模块配置” 中勾选 “Push(消息推送)”,并配置个推参数(AppID、AppKey、AppSecret)。
-
监听设备标识:
- 在应用启动时(如
App.vue 的 onLaunch 中),调用 UniPush API 监听 deviceToken 获取事件。示例代码:// App.vue
export default {
onLaunch: function() {
// 监听 deviceToken 更新
plus.push.addEventListener('receive', function(msg) {
if (msg.type === 'token') {
const deviceToken = msg.token; // 获取 deviceToken
console.log('Device Token:', deviceToken);
// 将 deviceToken 发送到服务器保存(用于后续推送)
// 示例:调用 API 上传 deviceToken 到您的后端
}
});
}
}
- 注意:
deviceToken 在应用首次启动或推送服务初始化时生成,可能略有延迟。
使用 deviceToken
- 服务器端推送:将
deviceToken 发送到您的后端服务器存储。当需要向该设备推送消息时,服务器调用个推 API(基于 deviceToken 指定目标设备)。
- 客户端测试:在开发阶段,可通过 HBuilderX 的 “推送” 功能手动输入
deviceToken 发送测试消息。
注意事项
- 平台差异:Android 和 iOS 的
deviceToken 机制一致,但需确保证书配置正确(尤其是 iOS 的推送证书)。
- 权限:Android 需申请通知权限,iOS 需用户授权。
- 调试:真机测试时,查看控制台日志获取
deviceToken,确保网络正常。
通过以上步骤,即可在 UniApp 中获取并使用 deviceToken 实现消息推送。