首页 > 解决方案 > 请求权限flutter IOS

问题描述

我正在开发一个从 firebase 云消息接收通知的应用程序。

从我读到的文档中,对于 IOS,您需要向用户请求权限,问题是您无法在请求中显示横幅。

这是我的代码:

    void main() {
  WidgetsFlutterBinding.ensureInitialized();
  if (Platform.isIOS) {
    //IOS check permission
    permission();
  }
  runApp(MyApp());
}

void permission() async {
  NotificationSettings settings = await messaging.requestPermission(
    alert: true,
    announcement: false,
    badge: true,
    carPlay: false,
    criticalAlert: false,
    provisional: false,
    sound: true,
  );

  if (settings.authorizationStatus == AuthorizationStatus.authorized ||
      settings.authorizationStatus == AuthorizationStatus.provisional) {
    FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
    await FirebaseMessaging.instance
        .setForegroundNotificationPresentationOptions(
      alert: true, // headsup notification in IOS
      badge: true,
      sound: true,
    );
  } else {
    //close the app
    SystemChannels.platform.invokeMethod('SystemNavigator.pop');
  }
}

标签: iosflutter

解决方案


从 developer.apple.com 创建一个 apn 密钥 在云消息部分下的 firebase 控制台中添加此密钥和 apn id。在 xcode 中添加 URL 参数 在 xcode 中添加后台模式功能并启用后台、获取和处理 在 xcode 中添加推送通知功能 在项目的 iOS/runner 中的 info.plist 中添加所需的权限。不要忘记在你的跑步者中包含 googleServicesinfo.plist

https://firebase.flutter.dev/docs/messaging/apple-integration 检查此链接以了解详细的分步过程。


推荐阅读