Flutter 当它';这是UI和x27之间的转换;s

Flutter 当它';这是UI和x27之间的转换;s,flutter,Flutter,我正在制作一个ui,我想在页面从主页面更改为主页时得到一个推送通知。我使用了flatter\u local\u通知包:^1.4.4+2,我使用此代码接收通知,但我没有在任何地方调用它,因为我在主界面中没有按钮(这只是一个过渡),所以我如何调用它 import 'package:flutter/material.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; class P

我正在制作一个ui,我想在页面从主页面更改为主页时得到一个推送通知。我使用了flatter\u local\u通知包:^1.4.4+2,我使用此代码接收通知,但我没有在任何地方调用它,因为我在主界面中没有按钮(这只是一个过渡),所以我如何调用它

import 'package:flutter/material.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';

class PushNotification extends StatefulWidget {
  @override
  _PushNotificationState createState() => _PushNotificationState();
}

class _PushNotificationState extends State {
  FlutterLocalNotificationsPlugin fltrNotification;
  String _selectedParam;
  String task;
  int val;

  @override
  void initState() {
    super.initState();
    var androidInitilize = new AndroidInitializationSettings('app_icon');
    var iOSinitilize = new IOSInitializationSettings();
    var initilizationsSettings =
        new InitializationSettings(androidInitilize, iOSinitilize);
    fltrNotification = new FlutterLocalNotificationsPlugin();
    fltrNotification.initialize(initilizationsSettings,
        onSelectNotification: notificationSelected);
  }

  Future _showNotification() async {
    var androidDetails = new AndroidNotificationDetails(
        "Channel ID", "Desi programmer", "This is my channel",
        importance: Importance.Max);
    var iSODetails = new IOSNotificationDetails();
    var generalNotificationDetails =
        new NotificationDetails(androidDetails, iSODetails);

    // await fltrNotification.show(
    //     0, "Task", "You created a Task", generalNotificationDetails, payload: "Task");
    var scheduledTime;
    if (_selectedParam == "Hour") {
      scheduledTime = DateTime.now().add(Duration(hours: 12));
    } else if (_selectedParam == "Minute") {
      scheduledTime = DateTime.now().add(Duration(minutes: 14));
    } else {
      scheduledTime = DateTime.now().add(Duration(seconds: val));
    }

    fltrNotification.schedule(
        1, "Times Uppp", task, scheduledTime, generalNotificationDetails);
  }

  @override
  Widget build(BuildContext context) {}
  Future notificationSelected(String payload) async {
    showDialog(
      context: context,
      builder: (context) => AlertDialog(
        content: Text("Notification Clicked $payload"),
      ),
    );
  }
}
这是给main.dart的

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:tariffo/auth.dart';
import 'package:tariffo/provider_widget.dart';
import 'package:tariffo/push_notification_service.dart';
import 'dart:async';
import 'LoginScreen.dart';
import 'LoginPage.dart';
import 'HomePage.dart';
import 'LoginScreen.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() async {
  runApp(new MaterialApp(
    home: new MyApp(),
  ));
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String email;
  SharedPreferences sharedPrefs;

  initState() {
    super.initState();

    FirebaseAuth.instance.currentUser().then((value) {
      if (value == null) {
        new Future.delayed(
            const Duration(seconds: 1),
            () => Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => LoginScreen()),
                ));
      } else {
        new Future.delayed(
            const Duration(seconds: 1),
            () => Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => Homepage()),
                ));
      }
    });

//    _getPrefs().then((value) {
//      print('in getPrefs');
//      if (value == '') {
//        print('value is empty');
//        new Future.delayed(
//            const Duration(seconds: 1),
//            () => Navigator.push(
//                  context,
//                  MaterialPageRoute(builder: (context) => LoginScreen()),
//                ));
//      } else {
//        print('value is not empty');
//        new Future.delayed(
//            const Duration(seconds: 1),
//            () => Navigator.push(
//                  context,
//                  MaterialPageRoute(builder: (context) => Homepage()),
//                ));
//      }
//    });
  }

  Future<String> _getPrefs() async {
    sharedPrefs = await SharedPreferences.getInstance();
    email = sharedPrefs.getString('email') ?? '';

    return email;
  }

  Future<void> _rmPrefs() async {
    sharedPrefs = await SharedPreferences.getInstance();
    sharedPrefs.remove('masterAuth');
  }

  @override
  Widget build(BuildContext context) {
    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
    return Provider(
        auth: Authentication(),
        db: Firestore.instance,
        child: MaterialApp(
          title: 'Welcome to Flutter',
          home: Scaffold(
              backgroundColor: Colors.blue,
              body: Center(
                child: Text(
                  "Tariffo",
                  style: TextStyle(
                      color: Colors.white,
                      fontFamily: 'SignPainter',
                      fontSize: 60),
                ),
              )),
        ));
  }
}
import'包:cloud_firestore/cloud_firestore.dart';
导入“包:firebase_auth/firebase_auth.dart”;
进口“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
导入“包:tariffo/auth.dart”;
导入“package:tariffo/provider_widget.dart”;
导入“package:tariffo/push_notification_service.dart”;
导入“dart:async”;
导入“LoginScreen.dart”;
导入“LoginPage.dart”;
导入“HomePage.dart”;
导入“LoginScreen.dart”;
导入“package:shared_preferences/shared_preferences.dart”;
void main()异步{
runApp(新材料)PP(
主页:新建MyApp(),
));
}
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>new_MyAppState();
}
类MyAppState扩展了状态{
字符串电子邮件;
SharedReferences SharedRefers;
initState(){
super.initState();
FirebaseAuth.instance.currentUser().then((值){
如果(值==null){
新未来(
常数持续时间(秒:1),
()=>Navigator.push(
上下文
MaterialPage路由(生成器:(上下文)=>LoginScreen()),
));
}否则{
新未来(
常数持续时间(秒:1),
()=>Navigator.push(
上下文
MaterialPackageRoute(生成器:(上下文)=>Homepage()),
));
}
});
//_getPrefs()。然后((值){
//打印('in getPrefs');
//如果(值=“”){
//打印('值为空');
//新未来(
//常数持续时间(秒:1),
//()=>Navigator.push(
//背景,
//MaterialPage路由(生成器:(上下文)=>LoginScreen()),
//                ));
//}其他{
//打印('值不为空');
//新未来(
//常数持续时间(秒:1),
//()=>Navigator.push(
//背景,
//MaterialPackageRoute(生成器:(上下文)=>Homepage()),
//                ));
//      }
//    });
}
Future\u getPrefs()异步{
sharedPrefs=等待SharedPreferences.getInstance();
email=sharedPrefs.getString('email')??“”;
回复邮件;
}
Future _rmPrefs()异步{
sharedPrefs=等待SharedPreferences.getInstance();
sharedPrefs.remove('masterAuth');
}
@凌驾
小部件构建(构建上下文){
SystemChrome.setPreferredOrientations([DeviceOrientation.GraphicUp]);
返回提供者(
auth:Authentication(),
db:Firestore.instance,
孩子:MaterialApp(
标题:“欢迎来到弗利特”,
家:脚手架(
背景颜色:Colors.blue,
正文:中(
子:文本(
“塔里夫”,
样式:TextStyle(
颜色:颜色,白色,
fontFamily:“签名画家”,
尺寸:60),,
),
)),
));
}
}