Flutter LinkedIn登录插件linkedin_login_ios的使用

Flutter LinkedIn 登录插件 linkedin_login_ios 的使用

描述

示例代码

示例代码文件

// example/lib/main.dart

示例代码

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    // 这里只是一个简单的文本组件,用于展示不实际运行示例应用
    return const Text('No need for example app');
  }
}

使用步骤

  1. 添加依赖pubspec.yaml 文件中添加 linkedin_loginlinkedin_login_ios 依赖:

    dependencies:
      flutter:
        sdk: flutter
      linkedin_login: ^x.x.x
      linkedin_login_ios: ^x.x.x
    
  2. 初始化配置main.dart 中初始化 LinkedInLoginPlugin

    import 'package:flutter/material.dart';
    import 'package:linkedin_login/linkedin_login.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatefulWidget {
      @override
      _MyAppState createState() => _MyAppState();
    }
    
    class _MyAppState extends State<MyApp> {
      final LinkedInLoginPlugin linkedInLogin = LinkedInLoginPlugin();
    
      @override
      void initState() {
        super.initState();
        // 初始化插件
        linkedInLogin.init(
          clientId: 'YOUR_CLIENT_ID',
          clientSecret: 'YOUR_CLIENT_SECRET',
          redirectUri: 'YOUR_REDIRECT_URI',
          state: 'YOUR_STATE',
        );
      }
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(
              title: Text('LinkedIn 登录示例'),
            ),
            body: Center(
              child: ElevatedButton(
                onPressed: () async {
                  // 调用登录方法
                  final result = await linkedInLogin.login();
                  if (result.status == LoginStatus.success) {
                    print('登录成功: ${result.accessToken}');
                  } else {
                    print('登录失败: ${result.message}');
                  }
                },
                child: Text('使用 LinkedIn 登录'),
              ),
            ),
          ),
        );
      }
    }
    

更多关于Flutter LinkedIn登录插件linkedin_login_ios的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter LinkedIn登录插件linkedin_login_ios的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中使用linkedin_login_ios插件来实现LinkedIn登录功能,可以帮助你轻松地集成LinkedIn的OAuth 2.0认证流程。以下是如何使用linkedin_login_ios插件的基本步骤:

1. 添加依赖

首先,在你的pubspec.yaml文件中添加linkedin_login_ios插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  linkedin_login_ios: ^1.0.0  # 确保使用最新版本

然后运行flutter pub get来安装依赖。

2. 配置LinkedIn开发者应用

在LinkedIn开发者门户中创建一个新的应用,并获取你的Client IDClient Secret。确保在应用的授权回调URL中配置了正确的重定向URL,例如https://www.example.com/auth/linkedin/callback

3. 初始化插件

在你的Flutter应用中使用linkedin_login_ios插件初始化LinkedIn登录。

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: LinkedInLoginScreen(),
    );
  }
}

class LinkedInLoginScreen extends StatelessWidget {
  final LinkedInIOSLogin linkedInLogin = LinkedInIOSLogin(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
    redirectUri: 'https://www.example.com/auth/linkedin/callback',
    scope: ['r_liteprofile', 'r_emailaddress'],
  );

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('LinkedIn Login'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            try {
              final result = await linkedInLogin.login();
              if (result.status == LinkedInLoginStatus.loggedIn) {
                print('LinkedIn Login Successful');
                print('Access Token: ${result.accessToken}');
                print('User Info: ${result.userInfo}');
              } else if (result.status == LinkedInLoginStatus.cancelledByUser) {
                print('LinkedIn Login Cancelled by User');
              } else if (result.status == LinkedInLoginStatus.error) {
                print('LinkedIn Login Error: ${result.error}');
              }
            } catch (e) {
              print('Error during LinkedIn login: $e');
            }
          },
          child: Text('Login with LinkedIn'),
        ),
      ),
    );
  }
}

4. 处理登录回调

在登录成功后,你可以通过result.accessToken获取用户的访问令牌,并通过result.userInfo获取用户的基本信息。

5. 错误处理

确保在登录过程中处理可能出现的错误,例如用户取消登录或网络错误。

6. 测试

运行你的Flutter应用,并测试LinkedIn登录功能。确保在iOS模拟器或真实设备上进行测试。

7. 发布应用

在发布应用之前,确保你已经完成了所有LinkedIn开发者门户的配置,并且已经正确处理了用户数据的隐私和安全问题。

注意事项

  • 确保你的LinkedIn应用在开发者门户中已经配置了正确的重定向URL。
  • 如果你使用的是沙盒模式,确保你的LinkedIn账号已经添加为测试用户。
  • 在iOS项目中,确保你已经配置了Info.plist文件,以允许URL Scheme和App Transport Security。

示例Info.plist配置

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>liYOUR_CLIENT_ID</string>
        </array>
    </dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>linkedin</string>
    <string>linkedin-sdk2</string>
    <string>linkedin-sdk</string>
</array>
回到顶部