@@ -5,9 +5,10 @@ import 'package:flutter/cupertino.dart';
55/// User: maoqitian
66/// Date: 2020/1/10 0010
77/// email: maoqitian068@163.com
8- /// des:
8+ /// des: WebPageMenu
99import 'package:flutter/material.dart' ;
10- import 'package:flutter_wanandroid/utils/tool_utils.dart' ;
10+ import 'package:flutter_wanandroid/model/route_page_data.dart' ;
11+ import 'package:share/share.dart' ;
1112import 'package:webview_flutter/webview_flutter.dart' ;
1213
1314const String kNavigationExamplePage = '''
@@ -27,16 +28,18 @@ The navigation delegate is set to block navigation to the youtube website.
2728
2829enum MenuOptions {
2930 reloadPage,
30- showUserAgent,
31+ share,
32+ /*showUserAgent,
3133 listCookies,
3234 clearCookies,
3335 addToCache,
3436 listCache,
35- clearCache,
37+ clearCache,*/
3638}
3739
3840class WebPageMenu extends StatelessWidget {
39- WebPageMenu (this .controller);
41+ final RoutePageData routePageData;
42+ WebPageMenu (this .controller,this .routePageData);
4043
4144 final Future <WebViewController > controller;
4245 final CookieManager cookieManager = CookieManager ();
@@ -50,10 +53,15 @@ class WebPageMenu extends StatelessWidget {
5053 return PopupMenuButton <MenuOptions >(
5154 onSelected: (MenuOptions value) {
5255 switch (value) {
56+ //webview 刷新
5357 case MenuOptions .reloadPage:
5458 _onReloadPage (controller.data, context);
5559 break ;
56- case MenuOptions .showUserAgent:
60+ // share 分享
61+ case MenuOptions .share:
62+ _onSharePage (controller.data, context);
63+ break ;
64+ /*case MenuOptions.showUserAgent:
5765 _onShowUserAgent(controller.data, context);
5866 break;
5967 case MenuOptions.listCookies:
@@ -70,23 +78,21 @@ class WebPageMenu extends StatelessWidget {
7078 break;
7179 case MenuOptions.clearCache:
7280 _onClearCache(controller.data, context);
73- break ;
81+ break;*/
7482 }
7583 },
7684 itemBuilder: (BuildContext context) => < PopupMenuItem <MenuOptions >> [
7785 PopupMenuItem <MenuOptions >(
7886 value: MenuOptions .reloadPage,
7987 enabled: controller.hasData,
80- child: Row (
81- crossAxisAlignment: CrossAxisAlignment .center,
82- mainAxisAlignment: MainAxisAlignment .center,
83- children: < Widget > [
84- Icon (Icons .replay,color: Colors .grey,size: 25 ,),
85- SizedBox (width: 10.0 ),
86- Text ('刷新页面' )
87- ],),
88+ child: buildMenuItem ("刷新页面" ,Icons .replay),
8889 ),
8990 PopupMenuItem <MenuOptions >(
91+ value: MenuOptions .share,
92+ enabled: controller.hasData,
93+ child: buildMenuItem ("分享文章" ,Icons .share),
94+ ),
95+ /*PopupMenuItem<MenuOptions>(
9096 value: MenuOptions.showUserAgent,
9197 child: const Text('Show user agent'),
9298 enabled: controller.hasData,
@@ -110,7 +116,7 @@ class WebPageMenu extends StatelessWidget {
110116 const PopupMenuItem<MenuOptions>(
111117 value: MenuOptions.clearCache,
112118 child: Text('Clear cache'),
113- ),
119+ ),*/
114120 ],
115121 );
116122 },
@@ -197,4 +203,20 @@ class WebPageMenu extends StatelessWidget {
197203 void _onReloadPage (WebViewController controller, BuildContext context) async {
198204 controller.reload ();
199205 }
206+
207+ //页面刷新
208+ void _onSharePage (WebViewController controller, BuildContext context) async {
209+ Share .share (routePageData.url);
210+ }
211+
212+ Widget buildMenuItem (String menuName,IconData iconData) {
213+ return Row (
214+ crossAxisAlignment: CrossAxisAlignment .center,
215+ mainAxisAlignment: MainAxisAlignment .center,
216+ children: < Widget > [
217+ Icon (iconData,color: Colors .grey,size: 25 ,),
218+ SizedBox (width: 10.0 ),
219+ Text (menuName)
220+ ],);
221+ }
200222}
0 commit comments