Flutter iOS 应用程序不请求通知权限

问题描述 投票:0回答:1

我用 Flutter 制作的 iOS 应用程序不需要通知权限。

它希望在应用程序的第一个版本中拥有它,但现在不需要了。

iOS 设备设置:

iOS device setting

苹果开发者控制台:

Apple developer console

我正在使用 Firebase 来发送通知。当我研究这个主题时,我看到它与证书有关,但我无法理解。我之前没有对Flutter做过这样的设置。


已修复

我发现问题了。我在请求通知许可时犯了一个错误。 Flutter Firebase 权限

当我再次按照此页面上的指令操作时,问题得到解决。

ios flutter push-notification firebase-cloud-messaging
1个回答
0
投票

如果您的 Flutter iOS 应用程序未请求通知权限,则可能有多种原因导致此问题。以下是排除和解决问题的一些步骤:

1.检查权限:确保您已在 Flutter 应用程序中添加了请求通知权限所需的代码。您可以使用permission_handler包来做到这一点,它允许您请求和检查权限。

将permission_handler包添加到pubspec.yaml文件中并运行flutter pub get:

dependencies:
  permission_handler: ^12.2.0

以下是如何请求通知权限的示例:

import 'package:permission_handler/permission_handler.dart';

Future<void> requestNotificationPermissions() async {
  final status = await Permission.notification.request();
  if (status.isGranted) {
    // You have permission to send notifications.
  } else {
    // Permission denied. Handle this case.
  }
}

2.iOS权限:除了使用包请求权限之外,您还需要在应用程序的Info.plist文件中指定为什么您的应用程序需要这些权限。在您的项目目录中,导航到 ios/Runner/Info.plist 并添加以下键和说明:

NSNotificationsUsageDescription:需要此键来解释为什么您的应用程序需要发送通知。 NSNotificationsEnabled:如果您想默认启用通知,则应将此键设置为 true。 这是一个例子:

<key>NSNotificationsUsageDescription</key>
<string>We need to send you notifications for important updates. 
</string>
<key>NSNotificationsEnabled</key>
<true/>

3.通知插件:确保您使用可靠的 Flutter 通知插件,例如 flutter_local_notifications。该插件简化了在 Flutter 应用程序中显示本地通知的过程。确保您按照其文档正确设置通知。

4.真机测试:有时iOS模拟器中可能不会提示通知权限。请务必在真实的 iOS 设备上测试您的应用程序,看看是否出现权限对话框。

5.更新依赖项:确保您的 Flutter 项目及其所有依赖项都是最新的。过时的软件包有时会导致权限处理问题。

6.检查错误:监视控制台是否有与通知相关的任何错误消息或警告。这可以帮助您识别阻止权限提示的特定问题。

7.检查用户设置:如果用户之前拒绝过权限,系统可能不会再次显示提示。如果需要,您可以将用户引导至应用程序的设置以手动启用通知。

请记住,Apple 的指导方针和政策可能会发生变化,因此必须及时了解他们处理通知的要求。此外,在真实 iOS 设备上进行彻底测试对于确保权限对话框按预期显示至关重要。

© www.soinside.com 2019 - 2024. All rights reserved.