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.jsonApp 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. 系统限制

  • 检查是否开启「免打扰」模式
  • 检查电池优化设置中是否限制了应用后台活动

建议按顺序排查,重点检查厂商推送配置和系统权限设置。如果问题持续存在,可尝试在荣耀手机「应用启动管理」中关闭该应用的自动管理,改为手动管理并允许后台活动。

回到顶部