У меня есть приложение, похожее на флаттер, например
main.dart
import 'package:flutter/material.dart';
import 'network.dart';
void main() => runApp(HomePage());
class HomePage extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _MyAppState();
}
}
class _MyAppState extends State<HomePage> {
String _message = '';
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
_register() {
_firebaseMessaging.getToken().then((token) => print(token));
}
@override
void initState() {
super.initState();
getMessage();
TestNetwork.checkNetwork().then((val){
print(val);
});
}
void getMessage(){
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print('on message $message');
setState(() => _message = message["notification"]["title"]);
}, onResume: (Map<String, dynamic> message) async {
print('on resume $message');
setState(() => _message = message["notification"]["title"]);
}, onLaunch: (Map<String, dynamic> message) async {
print('on launch $message');
setState(() => _message = message["notification"]["title"]);
});
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return new MaterialApp(
home: new Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text("Message: $_message"),
OutlineButton(
child: Text("Register My Devices"),
onPressed: () {
_register();
},
)
]),
),
);
}
}
Я вызываю функцию проверки сети из другого файла дротика, поэтому
network.dart
import 'package:http/http.dart' as http;
import 'dart:async';
class TestNetwork {
static String mainWebServiceURL="http://mydmain.com/webservicepath/";
static Future<bool> checkNetwork() async {
try{
Map<String,String> _user = {};
_user['name'] = "Username";
final response= await http.post(mainWebServiceURL+'/index.php',
body: _user,
);
if(response.statusCode==200)
return Future.value(true);
else
// I want to redierct to another page in main.dart page
}
catch (_) {
// I want to redierct to another page in main.dart page
}
}
}
Поэтому мой вопрос: если функция checkNetwork()
не работает или ответ «отрицательный», я хочу перенаправить / показать другую страницу в main.dart или другую.