Flutter&OneSignal:如何从Flutter的顶部获取推送通知横幅?

问题描述

我正在使用flutter和OneSignal,并且试图制作一个推式通知横幅(从顶部下拉的推式通知),就像从Messenger收到消息时看到的那样。但是,相反,我收到了类似警报的推送通知,该通知会在应用程序屏幕上弹出。

简而言之,如果有必要,我想更改我的推送通知功能/模板。我该如何配置?

请在下面查看我的推送通知代码。谢谢!

wrapper.dart

class Wrapper extends StatefulWidget {
  @override
  _WrapperState createState() => _WrapperState();
}

class _WrapperState extends State<Wrapper> {
  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  @override
  Widget build(BuildContext context) {
    final user = Provider.of<SystemUser>(context);
    print('User is $user');
    //return HomeScreen();
    if (user == null) {
      print('In Authenicate');
      return Authenticate();
    } else {
      print('In HomeScreen');
      //return TestScreen(); // to test screen
      return HomeScreenWrapper(); // goto homescreen

    }
  }

  Future<void> initPlatformState() async {

    await OneSignal.shared.init(*** My OneSignal Token***);


  }

  Future<void> _initOneSignal() async {
    OneSignal.shared.setLogLevel(OSLogLevel.verbose,OSLogLevel.none);

    OneSignal.shared.init(*** My OneSignal Token***,iOSSettings: {
      OSiOSSettings.autoPrompt: false,OSiOSSettings.inAppLaunchUrl: false
    });
    OneSignal.shared
        .setInFocusDisplayType(OSNotificationDisplayType.notification);

    await OneSignal.shared
        .promptUserForPushNotificationPermission(fallbackToSettings: true);
    var status = await OneSignal.shared.getPermissionSubscriptionState();

    if (status.subscriptionStatus.userId != null) {
      //status.subscriptionStatus.userId
      print('Push Notification Player ID: ${status.subscriptionStatus.userId}');
    }
  }
}

testing.dart

 onPressed: () async {
                      var status =
                          await OneSignal.shared.getPermissionSubscriptionState();
    
                      var playerId = status.subscriptionStatus.userId;
    
                      setState(() {
                        playerID = playerId.toString();
                      });
                      print('Player ID: $playerID');
    
                      await OneSignal.shared.postNotification(
                        OSCreateNotification(
                          playerIds: [playerId],content: "this is a test from OneSignal's Flutter SDK",heading: "Test Notification",),);
                    },

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...