|
|
@@ -28,6 +28,7 @@ class FlutterWebviewPlugin {
|
|
|
final _onStateChanged = StreamController<WebViewStateChanged>.broadcast();
|
|
|
final _onScrollXChanged = StreamController<double>.broadcast();
|
|
|
final _onScrollYChanged = StreamController<double>.broadcast();
|
|
|
+ final _onProgressChanged = new StreamController<double>.broadcast();
|
|
|
final _onHttpError = StreamController<WebViewHttpError>.broadcast();
|
|
|
|
|
|
Future<Null> _handleMessages(MethodCall call) async {
|
|
|
@@ -44,6 +45,9 @@ class FlutterWebviewPlugin {
|
|
|
case 'onScrollYChanged':
|
|
|
_onScrollYChanged.add(call.arguments['yDirection']);
|
|
|
break;
|
|
|
+ case "onProgressChanged":
|
|
|
+ _onProgressChanged.add(call.arguments["progress"]);
|
|
|
+ break;
|
|
|
case 'onState':
|
|
|
_onStateChanged.add(
|
|
|
WebViewStateChanged.fromMap(
|
|
|
@@ -68,6 +72,9 @@ class FlutterWebviewPlugin {
|
|
|
/// more detail than other events
|
|
|
Stream<WebViewStateChanged> get onStateChanged => _onStateChanged.stream;
|
|
|
|
|
|
+ /// Listening web view loading progress estimation, value between 0.0 and 1.0
|
|
|
+ Stream<double> get onProgressChanged => _onProgressChanged.stream;
|
|
|
+
|
|
|
/// Listening web view y position scroll change
|
|
|
Stream<double> get onScrollYChanged => _onScrollYChanged.stream;
|
|
|
|
|
|
@@ -194,6 +201,7 @@ class FlutterWebviewPlugin {
|
|
|
_onDestroy.close();
|
|
|
_onUrlChanged.close();
|
|
|
_onStateChanged.close();
|
|
|
+ _onProgressChanged.close();
|
|
|
_onScrollXChanged.close();
|
|
|
_onScrollYChanged.close();
|
|
|
_onHttpError.close();
|