victorbonnet / flutter_web_browser

Plugin for flutter to open web page with Chrome Custom Tabs and SFSafariViewController
MIT License
62 stars 39 forks source link

Can't open the in-app browser #23

Open chauhannaman98 opened 3 years ago

chauhannaman98 commented 3 years ago

I have used the example program to test the plugin here but it didn't work.

The error message after clicking on button reads:

E/flutter ( 8046): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: MissingPluginException(No implementation found for method openWebPage on channel flutter_web_browser)
E/flutter ( 8046): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:159:7)
E/flutter ( 8046): <asynchronous suspension>
E/flutter ( 8046): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:334:12)
E/flutter ( 8046): #2      FlutterWebBrowser.openWebPage (package:flutter_web_browser/flutter_web_browser.dart:15:21)
E/flutter ( 8046): #3      _MyAppState.openBrowserTab (package:inappbrowser/main.dart:36:29)
E/flutter ( 8046): #4      _MyAppState.build.<anonymous closure> (package:inappbrowser/main.dart:48:30)
E/flutter ( 8046): #5      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:992:19)
E/flutter ( 8046): #6      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1098:38)
E/flutter ( 8046): #7      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:184:24)
E/flutter ( 8046): #8      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:524:11)
E/flutter ( 8046): #9      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:284:5)
E/flutter ( 8046): #10     BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:219:7)
E/flutter ( 8046): #11     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:477:9)
E/flutter ( 8046): #12     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:78:12)
E/flutter ( 8046): #13     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:124:9)
E/flutter ( 8046): #14     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)
E/flutter ( 8046): #15     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:122:18)
E/flutter ( 8046): #16     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:108:7)
E/flutter ( 8046): #17     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:220:19)
E/flutter ( 8046): #18     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:200:22)
E/flutter ( 8046): #19     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:158:7)
E/flutter ( 8046): #20     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:104:7)
E/flutter ( 8046): #21     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:88:7)
E/flutter ( 8046): #22     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter ( 8046): #23     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 8046): #24     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter ( 8046): #25     _invoke1 (dart:ui/hooks.dart:267:10)
E/flutter ( 8046): #26     _dispatchPointerDataPacket (dart:ui/hooks.dart:176:5)
saravanans55 commented 2 years ago

I've also faced the same issue. To avoid calling the function without await. Maybe you face difficulties to write directly use the await inside the widget builder. So write it outside of the builder and call the method.

 //Before : Not working
FlutterWebBrowser.openWebPage(url: link); 

//After : Workable code
openBrowserTab("https://flutter.io/");

Future<void> openBrowserTab(String link) async {
    await FlutterWebBrowser.openWebPage(url: link);
  }