You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova Android App适配API 33时通知权限弹窗问题求助

适配API 33的Cordova通知权限申请方案

以下是两种可行的方案,均能实现应用内弹窗申请通知权限,无需跳转系统设置:

  • 使用cordova-plugin-android-permissions插件
    该插件已适配API 33的通知权限请求逻辑,可直接调用方法触发系统原生权限弹窗。

    1. 安装插件(若未安装):
      cordova plugin add cordova-plugin-android-permissions
      
    2. 添加权限声明到AndroidManifest.xml:
      <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
      
    3. 调用权限请求代码:
      const permissions = cordova.plugins.permissions;
      permissions.requestPermission(permissions.POST_NOTIFICATIONS, (status) => {
        if (status.hasPermission) {
          // 通知权限已成功授予
        } else {
          // 权限被拒绝,可根据情况引导用户重新申请
        }
      }, (error) => {
        console.error('权限请求失败:', error);
      });
      
  • 更新cordova-diagnostic-plugin至最新版本
    原插件的最新版本已针对API 33做了适配,修复了通知权限申请的问题:

    1. 更新插件:
      cordova plugin update cordova-diagnostic-plugin
      
    2. 调用更新后的通知权限请求方法:
      cordova.plugins.diagnostic.requestNotificationsPermission((status) => {
        switch(status) {
          case cordova.plugins.diagnostic.permissionStatus.GRANTED:
            // 权限授予成功
            break;
          case cordova.plugins.diagnostic.permissionStatus.DENIED:
            // 权限临时拒绝
            break;
          case cordova.plugins.diagnostic.permissionStatus.DENIED_ALWAYS:
            // 权限永久拒绝,此时才需要引导用户前往系统设置
            break;
        }
      }, (error) => {
        console.error('通知权限请求出错:', error);
      });
      

注意:API 33及以上版本中,通知权限属于需主动申请的权限,上述方案均通过调用系统原生接口触发权限弹窗,符合Google Play的合规要求。

内容的提问来源于stack exchange,提问作者Hasnain Rashid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:31:01