uniapp app启动时如何关闭自动询问hbuilder发送通知的权限弹窗

在uniapp开发中,每次启动APP时都会自动弹出HBuilder请求发送通知权限的弹窗。请问如何关闭这个默认的权限询问弹窗?我想在用户主动触发通知功能时再申请权限,而不是在应用启动时自动弹出。需要修改哪个配置文件或添加什么代码?

2 回复

在manifest.json中配置:
"plus": { "distribute": { "google": { "permissions": ["<uses-permission android:name=\"android.permission.POST_NOTIFICATIONS\"/>"] } } }
移除POST_NOTIFICATIONS权限即可关闭弹窗。


在 UniApp 中,App 启动时默认会弹出通知权限请求弹窗(由 HBuilder 框架自动触发)。要关闭此自动弹窗,可以通过以下方法实现:

解决方案

  1. 修改 manifest.json 文件
    在项目的 manifest.json 文件中,找到 App模块配置App权限配置,关闭自动初始化推送权限:

    {
      "app-plus": {
        "distribute": {
          "ios": {
            "permissions": {
              "notification": {
                "description": "需要通知权限", 
                "autoPrompt": false  // 关闭自动弹窗(iOS)
              }
            }
          },
          "android": {
            "permissions": {
              "notification": {
                "autoPrompt": false  // 关闭自动弹窗(Android)
              }
            }
          }
        }
      }
    }
    
  2. 手动控制权限请求时机
    关闭自动弹窗后,可在需要时通过代码主动请求权限:

    // 示例:在用户触发某个操作后再请求权限
    function requestNotificationPermission() {
      plus.push.requestPermission(() => {
        console.log("通知权限已授权");
      }, (e) => {
        console.log("通知权限拒绝:" + e.message);
      });
    }
    

注意事项

  • 平台差异:Android 和 iOS 对通知权限的处理不同,需分别配置。
  • 用户体验:建议在合适的场景(如用户点击“开启通知”按钮)后再触发权限请求,避免强制弹窗引起反感。

通过以上配置,即可禁用启动时的自动弹窗,改为按需手动请求权限。

回到顶部