title: unable to open a browser URL through flutter app
body: <p>I am making a news app, which shows a list of news with title, description and url of its source website.
  this is my newsDetail.dart page</p>
  
  <pre><code>import 'package:flutter/material.dart';
  import 'package:scoped_model/scoped_model.dart';
  import 'package:url_launcher/url_launcher.dart';
  
  import '../scoped_models/main.dart';
  import '../models/news.dart';
  
  class NewsDetailPage extends StatelessWidget {
  
    _launchURL(String url) async {
      String url1 = url;
      if (await canLaunch(url1)) {
        await launch(url1);
      } else {
        throw 'Could not launch $url1';
      }
    }
    @override
    Widget build(BuildContext context) {
      // TODO: implement build
      return ScopedModelDescendant&lt;MainModel&gt;(
        builder: (BuildContext context, Widget child, MainModel model) {
          return WillPopScope(
            onWillPop: () {
              print('back button presses');
              Navigator.pop(context, false);
              return Future.value(false);
            },
            child: ScopedModelDescendant&lt;MainModel&gt;(
                builder: (BuildContext context, Widget child, MainModel model) {
              final News news = model.allnews[model.selectedIndex];
              print('news details main');
              print(news);
              return Scaffold(
                appBar: AppBar(
                  title: Text(news.title),
                ),
                body: Column(
                  children: &lt;Widget&gt;[
                    Container(
                      padding: EdgeInsets.all(20.0),
                      child: Text(
                        news.description,
                        style: TextStyle(
                          fontSize: 20.0,
                        ),
                      ),
                    ),
                    Center(
                      child: FlatButton(
                        onPressed: (){
                          _launchURL(news.url);
                        },
                        child: Text('further details'),
                      ),
                    ),
                  ],
                ),
              );
            }),
          );
        },
      );
    }
  }
  </code></pre>
  
  <p>news.url is a string which has the url of a selected news. i have passed on the url in _launchURL method. (this method is the exact copy from this link: <a href="https://pub.dartlang.org/packages/url_launcher#-readme-tab-" rel="nofollow noreferrer">https://pub.dartlang.org/packages/url_launcher#-readme-tab-</a>)</p>
  
  <p>But its giving me an error whenever I click that FlatButton:</p>
  
  <pre><code>[ERROR:flutter/shell/common/shell.cc(186)] Dart Error: Unhandled exception:
  E/flutter ( 5959): MissingPluginException(No implementation found for method canLaunch on channel plugins.flutter.io/url_launcher)
  E/flutter ( 5959): #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:291:7)
  E/flutter ( 5959): &lt;asynchronous suspension&gt;
  E/flutter ( 5959): #1      canLaunch (package:url_launcher/url_launcher.dart:111:25)
  E/flutter ( 5959): &lt;asynchronous suspension&gt;
  E/flutter ( 5959): #2      NewsDetailPage._launchURL (package:project/widgets/newsdetail.dart:12:15)
  E/flutter ( 5959): &lt;asynchronous suspension&gt;
  E/flutter ( 5959): #3      NewsDetailPage.build.&lt;anonymous closure&gt;.&lt;anonymous closure&gt;.&lt;anonymous closure&gt; (package:project/widgets/newsdetail.dart:52:25)
  E/flutter ( 5959): #4      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)
  E/flutter ( 5959): #5      _InkResponseState.build.&lt;anonymous closure&gt; (package:flutter/src/material/ink_well.dart:562:30)
  E/flutter ( 5959): #6      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
  E/flutter ( 5959): #7      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
  E/flutter ( 5959): #8      TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:175:7)
  E/flutter ( 5959): #9      PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:315:9)
  E/flutter ( 5959): #10     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)
  E/flutter ( 5959): #11     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)
  E/flutter ( 5959): #12     _WidgetsFlutterBinding&amp;BindingBase&amp;GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:180:19)
  E/flutter ( 5959): #13     _WidgetsFlutterBinding&amp;BindingBase&amp;GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:158:22)
  E/flutter ( 5959): #14     _WidgetsFlutterBinding&amp;BindingBase&amp;GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:138:7)
  E/flutter ( 5959): #15     _WidgetsFlutterBinding&amp;BindingBase&amp;GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:101:7)
  E/flutter ( 5959): #16     _WidgetsFlutterBinding&amp;BindingBase&amp;GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:85:7)
  E/flutter ( 5959): #17     _invoke1 (dart:ui/hooks.dart:173:13)
  E/flutter ( 5959): #18     _dispatchPointerDataPacket (dart:ui/hooks.dart:127:5)
  </code></pre>
  
  <p>i have   url_launcher: ^5.0.2
  already installed in py pubspec.yaml file. Please tell what is the error, and the solution as well.</p>