Skip to content

Commit

Permalink
Merge pull request alibaba#322 from alibaba/beta
Browse files Browse the repository at this point in the history
Modify: web view 方法回退
  • Loading branch information
ryan730 authored Aug 22, 2019
2 parents 0696c5a + 799ae20 commit cf4c215
Showing 1 changed file with 14 additions and 74 deletions.
88 changes: 14 additions & 74 deletions lib/views/web_page/web_view_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@
/// @Last Modified time: 2019-01-14 19:47:14
import 'dart:core';
import 'dart:math';

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

import 'package:flutter_go/model/collection.dart';
/// import 'package:flutter_go/model/collection.dart';
import 'package:flutter_go/event/event_bus.dart';
import 'package:flutter_go/event/event_model.dart';
import 'package:flutter_go/api/api.dart';
import 'package:flutter_go/routers/application.dart' show Application;

class WebViewPage extends StatefulWidget {
final String url;
Expand All @@ -22,21 +21,16 @@ class WebViewPage extends StatefulWidget {
_WebViewPageState createState() => _WebViewPageState();
}

class _WebViewPageState extends State<WebViewPage> with AutomaticKeepAliveClientMixin{
@override
bool get wantKeepAlive => true;

class _WebViewPageState extends State<WebViewPage> {
final flutterWebviewPlugin = new FlutterWebviewPlugin();

final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();

@override
void initState() {
super.initState();
dialog = dialogContext(false);

flutterWebviewPlugin.onUrlChanged.listen((String url) {

print('url change:$url');
if (url.indexOf('loginSuccess') > -1) {
String urlQuery = url.substring(url.indexOf('?') + 1);
Expand Down Expand Up @@ -68,75 +62,21 @@ class _WebViewPageState extends State<WebViewPage> with AutomaticKeepAliveClient
flutterWebviewPlugin.close();
}
});
flutterWebviewPlugin.onStateChanged.listen((state) async {
print('url state:$state');
if(state.type == WebViewState.finishLoad) {
}
});
}

Widget dialogContext(bool isShow){
if(!isShow){
return Container(child:Text(""));
}
return Container(
height: 200,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
SizedBox(height: 20),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text('分享到',style: TextStyle(fontSize:16,color: Colors.deepOrange)),
FlatButton(
child: Text('取消',style: TextStyle(fontSize:16,color: Colors.black45),),
onPressed: (){
setState(() {
dialog = dialogContext(false);

});
}
)
]
)
])
);
}

Container dialog;
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
appBar: AppBar(
title: Text(widget.title),
// actions: <Widget>[
// IconButton(
// icon: Icon(Icons.announcement),
// onPressed: () {
// /// flutterWebviewPlugin.evalJavascript("alert('Flutter Go H5 版本')");
// setState(() {
// dialog = dialogContext(true);
// });
// },
// )
// ],
),
body: WebviewScaffold(
url: widget.url,
withZoom: true,
withLocalStorage: true,
withJavascript: true,
userAgent: "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Mobile Safari/537.36",
bottomNavigationBar:dialog,
initialChild: Container(
color: Colors.white,
child: const Center(
child: Text("Loading...."),
),
),
));

key: _scaffoldKey,
appBar: AppBar(
title: Text(widget.title),
),
body: WebviewScaffold(
url: widget.url,
withZoom: false,
withLocalStorage: true,
withJavascript: true,
),
);
}
}

0 comments on commit cf4c215

Please sign in to comment.