Cordova环境下获取FCM Token失败求助
解决Cordova获取FCM Token无响应的问题
1. 补充错误回调排查根源
你的代码只实现了成功回调,没有处理失败场景,先加上错误回调,直接定位问题:
document.addEventListener('deviceready', onDeviceReady, false); function onDeviceReady() { // 获取Token(带错误回调) FCMPlugin.getToken( function(token){ alert('Token获取成功:' + token); // 可在此将Token上传至服务器关联用户 }, function(err){ alert('Token获取失败:' + err); } ); // Token刷新监听(带错误回调) FCMPlugin.onTokenRefresh( function(token){ alert('Token已刷新:' + token); }, function(err){ alert('Token刷新监听失败:' + err); } ); }
2. 适配Android权限要求
你安装的cordova-plugin-fcm-with-dependecy-updated 7.8.0,在Android 13及以上系统中,必须先申请POST_NOTIFICATIONS权限才能获取Token,补充权限申请逻辑:
document.addEventListener('deviceready', onDeviceReady, false); function onDeviceReady() { // 针对Android 13+申请通知权限 if (cordova.platformId === 'android') { FCMPlugin.requestPermission( function(){ console.log('通知权限已授权'); getFCMToken(); }, function(err){ alert('通知权限被拒绝:' + err); } ); } else { getFCMToken(); } } function getFCMToken() { FCMPlugin.getToken( function(token){ alert('Token:' + token); }, function(err){ alert('获取Token失败:' + err); } ); }
3. 检查插件与Cordova版本兼容性
你的Cordova版本为11.0.0,尝试更新插件到最新稳定版,确保版本兼容:
# 移除旧插件 cordova plugin remove cordova-plugin-fcm-with-dependecy-updated # 安装最新版 cordova plugin add cordova-plugin-fcm-with-dependecy-updated@latest # 清理并重新构建 cordova clean android cordova build android
4. 用Logcat定位深层问题
如果以上操作仍无效果,通过Android Studio的Logcat查看设备日志,过滤关键词FCM或Firebase,可以获取更详细的错误信息,比如:
- Firebase配置文件(google-services.json)是否加载成功
- 权限申请过程中的异常
- Token请求时的网络或服务错误
5. 确认基础环境正常
- 设备需能正常访问Firebase服务(国内设备需配置合规网络环境)
- 检查Firebase控制台中你的项目是否已启用Cloud Messaging服务
内容的提问来源于stack exchange,提问作者aravindb
相关产品推荐
相关产品推荐

