diff --git a/lib/index/index_controller.dart b/lib/index/index_controller.dart index 789376d..b4d2b05 100644 --- a/lib/index/index_controller.dart +++ b/lib/index/index_controller.dart @@ -1,9 +1,11 @@ import 'package:decpisos/home/home.dart'; +import 'package:decpisos/instagram_embed/instagram_embed.dart'; import 'package:decpisos/notificacoes/notificacoes.dart'; -import 'package:decpisos/videos/youtube_videos.dart'; +//import 'package:decpisos/videos/youtube_videos.dart'; import 'package:convex_bottom_bar/convex_bottom_bar.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:line_icons/line_icons.dart'; class IndexController extends GetxController with SingleGetTickerProviderMixin{ TabController tabController; @@ -23,10 +25,12 @@ class IndexController extends GetxController with SingleGetTickerProviderMixin{ } void initTabs(){ - this.childrenTabs.add(YouTubeVideosScreen()); + //this.childrenTabs.add(YouTubeVideosScreen()); + this.childrenTabs.add(InstagramScreen()); this.childrenTabs.add(HomeScreen()); this.childrenTabs.add(NotificacoesScreen()); - this.tabs.add(TabItem(icon: Icons.video_collection, title: 'Vídeos')); + //this.tabs.add(TabItem(icon: Icons.video_collection, title: 'Vídeos')); + this.tabs.add(TabItem(icon: LineIcons.instagram, title: 'Instagram')); this.tabs.add(TabItem(icon: Icons.home, title: 'Home')); this.tabs.add(TabItem(icon: Icons.notifications, title: 'Notificações')); this.tabController = TabController(vsync: this, length: this.tabs.length); diff --git a/lib/instagram_embed/instagram_embed.dart b/lib/instagram_embed/instagram_embed.dart new file mode 100644 index 0000000..9290ff1 --- /dev/null +++ b/lib/instagram_embed/instagram_embed.dart @@ -0,0 +1,60 @@ +//import 'package:decpisos/funcoes_gerais.dart'; +import 'package:flutter/material.dart'; +//import 'package:url_launcher/url_launcher.dart'; +import 'package:webview_flutter/webview_flutter.dart'; + +class InstagramScreen extends StatefulWidget { + @override + _InstagramScreenState createState() => _InstagramScreenState(); +} + +class _InstagramScreenState extends State with AutomaticKeepAliveClientMixin { + bool error = false; + String msg = ''; + @override + Widget build(BuildContext context) { + super.build(context); + return SafeArea( + child: this.error ? this._buildError() : WebView( + initialUrl: 'https://blog.hightechx.com/teste-feed-instagram/', + 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; +} \ No newline at end of file