uniapp 开发app 荣耀手机通知无法开启是什么原因
我在使用uniapp开发APP时,遇到荣耀手机无法开启通知的问题。具体表现为:在荣耀手机上安装APP后,系统设置中找不到该应用的通知权限开关,或者在开启通知权限后仍然收不到推送通知。其他品牌的安卓手机都能正常接收通知,只有荣耀手机存在这个问题。请问这是什么原因导致的?有没有解决方案?需要检查哪些配置或权限设置?
        
          2 回复
        
      
      
        荣耀手机通知无法开启,可能是系统权限未开启或通知设置问题。检查应用权限管理,确保通知权限已打开。同时查看系统设置中的通知管理,允许应用发送通知。
在荣耀手机上无法开启通知,通常由以下原因及解决方案构成:
1. 系统权限未开启
- 进入「设置」-「应用」-「应用管理」- 找到您的APP
- 打开「通知管理」权限,允许所有通知类型(一般通知、重要通知等)
2. Uniapp 配置问题
在 manifest.json 中确保已配置推送权限:
{
  "app-plus": {
    "distribute": {
      "android": {
        "permissions": [
          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
          "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>"
        ]
      }
    }
  }
}
3. 厂商通道配置缺失(关键) 荣耀需集成华为推送服务:
- 在华为开发者平台申请推送服务
- 在 manifest.json的App SDK配置中勾选「华为推送」
- 配置应用签名和证书
4. 本地通知权限检测 在代码中动态检测权限状态:
// 检查通知权限
uni.getSystemInfo({
  success(res) {
    if (res.platform === 'android') {
      const main = plus.android.runtimeMainActivity();
      const pm = main.getPackageManager();
      const packageName = main.getPackageName();
      const uid = pm.getApplicationInfo(packageName, 0).uid;
      const notificationManager = plus.android.importClass('android.app.NotificationManager');
      const nm = main.getSystemService(notificationManager);
      const enabled = nm.areNotificationsEnabled();
      console.log('通知权限状态:', enabled);
    }
  }
});
5. 系统限制
- 检查是否开启「免打扰」模式
- 检查电池优化设置中是否限制了应用后台活动
建议按顺序排查,重点检查厂商推送配置和系统权限设置。如果问题持续存在,可尝试在荣耀手机「应用启动管理」中关闭该应用的自动管理,改为手动管理并允许后台活动。
 
        
       
                     
                   
                    

