撸一个Flutter Apple Id 登录插件

jerryfans 2020/5/12 11:26:55

前言 Flutter Apple Sign In相关插件pub搜了一下还是蛮多的,但是还是忍不住要再撸一个,顺便可以再熟悉下flutter plugin和 platform view 的用法(调用系统的苹果登录按钮需要用到),这个自定义button widget,调用方法拿回调则不用,区别只是在于UI。另外Plugin层是基于S…

前言

Flutter Apple Sign In相关插件pub搜了一下还是蛮多的,但是还是忍不住要再撸一个,顺便可以再熟悉下flutter plugin和 platform view 的用法(调用系统的苹果登录按钮需要用到),这个自定义button widget,调用方法拿回调则不用,区别只是在于UI。另外Plugin层是基于Swift调用Apple Sign In Api实现的,也可以顺便加强下Swift,毕竟一直OC用得较多。

下载方式

pub方式:

dependencies:
  sign_in_apple: ^0.0.1
复制代码

github:

github.com/JerryFans/s…

效果如图:

Usage

The System Button Style Use Platform View to Show in Flutter.

因为系统按钮使用platform view 实现

Please set io.flutter.embedded_views_preview = true in Info.plist in your project.

请在Info.plist 加入 io.flutter.embedded_views_preview = true, 同时确保项目开启了AppleSignIn 的配置。详情可以下载github上example查看

CallBack回调:

SignInApple.handleAppleSignInCallBack(onCompleteWithSignIn: (String name,
        String mail,
        String userIdentifier,
        String authorizationCode,
        String identifyToken) async {
      print("flutter receiveCode: \n");
      print(authorizationCode);
      print("flutter receiveToken \n");
      print(identifyToken);
      setState(() {
        _name = name;
        _mail = mail;
        _userIdentify = userIdentifier;
        _authorizationCode = authorizationCode;
      });
    }, onCompleteWithError: (AppleSignInErrorCode code) async {
      var errorMsg = "unknown";
      switch (code) {
        case AppleSignInErrorCode.canceled:
          errorMsg = "user canceled request";
          break;
        case AppleSignInErrorCode.failed:
          errorMsg = "request fail";
          break;
        case AppleSignInErrorCode.invalidResponse:
          errorMsg = "request invalid response";
          break;
        case AppleSignInErrorCode.notHandled:
          errorMsg = "request not handled";
          break;
        case AppleSignInErrorCode.unknown:
          errorMsg = "request fail unknown";
          break;
      }
      print(errorMsg);
    });
复制代码

UI相关:

自定义Widget按钮直接触发plugin按钮事件即可:

GestureDetector(
              onTap: () {
                SignInApple.clickAppleSignIn();
              },
              child: Container(
                width: 56,
                height: 56,
                child: Image.asset(
                  "images/apple_logo.png",
                  width: 56,
                  height: 56,
                ),
              ),
            ),
复制代码

系统ButtonWidget直接显示,组件内部已经实现了事件,点击了会触发上面的回调:

AppleSignInSystemButton(
              width: 250,
              height: 50,
              buttonStyle: AppleSignInSystemButtonStyle.black,
)
复制代码
随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[撸一个Flutter Apple Id 登录插件]http://www.zyiz.net/tech/detail-134438.html

上一篇:总览:工作引擎、运行时与调用栈

下一篇:几个不成熟的动画,求大神赐教了。

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    关注微信小程序
    程序员编程王-随时随地学编程

    扫描二维码或查找【程序员编程王】

    可以随时随地学编程啦!

    技术文章导航 更多>
    扫一扫关注最新编程教程