未处理的异常:MissingPluginException(在通道 flutter_webview_plugin 上找不到关闭方法的实现)

时间:2021-02-17 06:49:43

标签: flutter dart

我正在尝试将linkedin登录集成到flutter中,但我在实现它时出错。

这是我得到的错误:

[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: MissingPluginException(No implementation found for method close on channel flutter_webview_plugin)
E/flutter ( 4885): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:157:7)
E/flutter ( 4885): <asynchronous suspension>
E/flutter ( 4885): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:332:12)
E/flutter ( 4885): #2      FlutterWebviewPlugin.close (package:flutter_webview_plugin/src/base.dart:238:20)
E/flutter ( 4885): #3      _WebviewScaffoldState.initState (package:flutter_webview_plugin/src/webview_scaffold.dart:93:22)
E/flutter ( 4885): #4      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4765:58)
E/flutter ( 4885): #5      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter ( 4885): #6      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 4885): #7      Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 4885): #8      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4652:16)
E/flutter ( 4885): #9      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4800:11)
E/flutter ( 4885): #10     Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5)
E/flutter ( 4885): #11     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5)
E/flutter ( 4885): #12     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4791:11)
E/flutter ( 4885): #13     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter ( 4885): #14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 4885): #15     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 4885): #16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4652:16)
E/flutter ( 4885): #17     Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5)
E/flutter ( 4885): #18     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5)
E/flutter ( 4885): #19     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter ( 4885): #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 4885): #21     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 4885): #22     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4652:16)
E/flutter ( 4885): #23     Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5)
E/flutter ( 4885): #24     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5)
E/flutter ( 4885): #25     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter ( 4885): #26     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 4885): #27     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 4885): #28     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6118:14)
E/flutter ( 4885): #29     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 4885): #30     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 4885): #31     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4652:16)
E/flutter ( 4885): #32     Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5)
E/flutter ( 4885): #33     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5)
E/flutter ( 4885): #34     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter ( 4885): #35     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 4885): #36     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 4885): #37     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6118:14)
E/flutter ( 4885): #38     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 4885): #39     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 4885): #40     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4652:16)
E/flutter ( 4885): #41     Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5)
E/flutter ( 4885): #42     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5)
E/flutter ( 4885): #43     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter ( 4885): #44     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14

以下是我的代码:

import 'dart:convert';
import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:flutter/gestures.dart';
import 'package:http/http.dart' as http;
import 'package:flutter_linkedin/linkedloginflutter.dart';

class LoginScreen extends StatefulWidget {
  @override
  _LoginScreenState createState() => _LoginScreenState();
}

class _LoginScreenState extends State<LoginScreen> {

  final GlobalKey<ScaffoldState> _scaffoldkey = new GlobalKey<ScaffoldState>();
  final String clientId = 'Client ID here';
  final String clientSecret = 'Client Secret Here';

  @override
  void initState() {
    LinkedInLogin.initialize(context,
        clientId: clientId,
        clientSecret: clientSecret);
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    SystemChrome.setEnabledSystemUIOverlays([]);
    return Scaffold(
      key: _scaffoldkey,
      appBar: AppBar(
        title: RichText(
          text: TextSpan(
            text: 'App',
            style: TextStyle(color: Colors.white,fontSize: 30),
            children: <TextSpan>[
              TextSpan(text: 'Bar', style: TextStyle(color: Colors.red,fontSize: 30)),
            ],
          ),
        ),
        centerTitle: true,
        backgroundColor: Colors.lightBlue[900],
      ),
      body: SingleChildScrollView(
        scrollDirection: Axis.vertical,
        padding:  EdgeInsets.symmetric(
          vertical: 40.0,
        ),
        child: Column(
          children: [
            Text(
              'Login',
              style: TextStyle(
                color: Colors.lightBlue[900],
                fontFamily: 'OpenSans',
                fontSize: 30.0,
                fontWeight: FontWeight.bold,
              ),
            ),
            SizedBox(height: 30.0),
            Container(
              padding: EdgeInsets.symmetric(
                horizontal: 40.0,
              ),
            ),
            Container(
              padding: EdgeInsets.symmetric(
                horizontal: 40.0,
              ),
              child: Column(
                children: [
                  _buildSocialBtnRow(),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }

  Widget _buildSocialBtn(Function onTap, AssetImage logo) {
    return GestureDetector(
      onTap: onTap,
      child: Container(
        height: 60.0,
        width: 60.0,
        decoration: BoxDecoration(
          shape: BoxShape.circle,
          color: Colors.white,
          boxShadow: [
            BoxShadow(
              color: Colors.black26,
              offset: Offset(0, 2),
              blurRadius: 6.0,
            ),
          ],
          image: DecorationImage(
            image: logo,
          ),
        ),
      ),
    );
  }

  Widget _buildSocialBtnRow() {
    return Padding(
      padding: EdgeInsets.symmetric(vertical: 30.0),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: <Widget>[
          _buildSocialBtn(
            () => {
              LinkedInLogin.loginForAccessToken(
                destroySession: true,
                appBar: AppBar(
                title: Text('Demo Login Page'),
                )
                ) .then((accessToken) => print(accessToken) )
                  .catchError((error){
              print(error.errorDescription);
              }),
              LinkedInLogin.getProfile(
                destroySession: true,
                forceLogin: true,
                appBar: AppBar(
                  title: Text('Demo Login Page'),
                )
              ) .then((profile) => print(profile.toJson().toString()) )
                  .catchError((error){
              print(error.errorDescription);
              }),
              LinkedInLogin.getEmail(
                destroySession: true,
                forceLogin: true,
                appBar: AppBar(
                  title: Text('Demo Login Page'),
                )
              ) .then((email) => print(email.toJson().toString()) )
                  .catchError((error){
              print(error.errorDescription);
              })
            },
            AssetImage(
              'logos/linkedin.jpg',
            ),
          ),
          _buildSocialBtn(
                () => print('Login with Google'),
            AssetImage(
              'logos/google.jpg',
            ),
          ),
        ],
      ),
    );
  }

我在我的 pubsec.yaml 文件中添加了依赖项:flutter_linkedin: ^1.0.2 并按照其中给出的说明进行操作,但仍然无法正常工作。 有人可以帮我解决这个问题吗?

0 个答案:

没有答案