Files
AppCardsStarter_Modelo/lib/home/home.dart
T
2021-05-04 16:12:48 -03:00

60 lines
1.7 KiB
Dart

import 'package:appcardsstarter/funcoes_gerais.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:webview_flutter/webview_flutter.dart';
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> with AutomaticKeepAliveClientMixin<HomeScreen> {
bool error = false;
String msg = '';
@override
Widget build(BuildContext context) {
super.build(context);
return SafeArea(
child: this.error ? this._buildError() : WebView(
initialUrl: FuncoesGerais.homeURL,
javascriptMode: JavascriptMode.unrestricted,
onWebResourceError: (err){
this.error = true;
this.msg = err.description;
setState(() {
});
},
navigationDelegate: (navigation){
print(navigation.url);
if (navigation.url.startsWith(FuncoesGerais.dominioPermitido)) {
return NavigationDecision.navigate;
}
//print('allowing navigation to $request');
launch(navigation.url);
return NavigationDecision.prevent;
},
),
);
}
Widget _buildError(){
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(msg),
RaisedButton(onPressed: (){
this.error = false;
this.msg = '';
setState(() {
});
}, child: Text('Atualizar'),)
],
),
);
}
@override
bool get wantKeepAlive => true;
}