flutter在IOS上的登录实现——QQ登录、微信登录、自动识别手机号一键登录、apple登录

  • 一、QQ登录
    • 使用的第三方库:
    • 具体操作方法:
      • 1、配置 Universal Links
      • 2、QQ互联官网,对APP的资料填写完整。
      • 3、在xcode的info里 配置一些信息
      • 4、引入第三方插件包
      • 5、完成以上配置后,就可以编写代码了。
      • 自己的话:
  • 二、微信登录
    • 使用的第三方库
    • 具体操作方法:
      • 1、配置 Universal Links
      • 1、 在微信开放平台里填写完整资料,拿到它在微信平台里的APPID
      • 3、在xcode的info里 上配置一些信息
      • 4、引入第三发插件包
      • 5、完成以上配置后,就可以编写代码了。
  • 三、apple账号登录
    • 使用的第三方库
    • 具体操作方法:
      • 1、引入第三方插件库
      • 2、编写代码
  • 四、自动识别手机号一键登录
  • 五、扫一扫 会分享编程教程和资料,让我们一起成长

开发背景:
我们在使用flutter开发的时候,第一版都基于安卓设备开发的,所以登录功能,也都只适配了安卓设备。
第一版完成后,就由我适配在IOS设备上的登录模块,因为安卓的登录模块不是我开发的,所以修改别人的代码,还尽量不影响原先的逻辑
着实让我头疼。 呕心沥血完成后,赶紧做个记录。

我们APP登录方式很多:
QQ登录、微信登录、自动识别手机号一键登录、手机号验证码登录、apple登录

除了手机号验证码登录,其他4种方式我都得重新适配。
下面是我们app的登录页面:

一、QQ登录

使用的第三方库:

tencent_kit
git地址:https://github.com/RxReader/tencent_kit

原先 使用的第三方库是:flutter_qq (https://github.com/marekchen/flutter_qq),在安卓上登录没有问题。
可是这个在IOS始终有个问题:调用登录方法,可以跳到QQ应用授权后,返回到我的APP,但是拿不到回调后的返回值。
因为始终解决不了,我就换了第三方库。而且你在github上可以看到 tencent_kit 星级比flutter_qq 高。

具体操作方法:

1、配置 Universal Links

QQ登录和微信登录都必须配置这个
具体配置方法请看:https://blog.csdn.net/zl18603543572/article/details/119966184

我理解的这个东西是:配置完这个链接后,在网页中输入链接,就可以跳转到我们APP。主要用于第三方登录授权后,从外部跳转回我们APP的时候,用到它。

配置好之后,在xcode中填到Domains选项中。(QQ登录和微信登录,都必须填这一步)

2、QQ互联官网,对APP的资料填写完整。

因为之前只填写了安卓的资料,这个时候,也要在QQ互联里配置IOS项目资料,有包名、appstoreID、以及配置好的Universal Links 等信息。
资料确认无误后,得到QQ互联上项目 APPID

3、在xcode的info里 配置一些信息

(1)在xcode -> info -> url types 中配置 tencent ,url Schemes 那一栏填:tencent+你的QQ互联里的appid(如tencent10234234)

(2)xcode->info 里添加QQ相关的白名单

4、引入第三方插件包

我这里是直接引git地址的方式 导包的。

5、完成以上配置后,就可以编写代码了。

在.dart文件里,写自己的登录逻辑。 我这里只展示 主要的方法代码

  //注册QQ信息Tencent.instance.registerApp(appId: "QQ互联里的APPID");//跳转去登录QQTencent.instance.login(scope: <String>[TencentScope.GET_SIMPLE_USERINFO],) ;//监听登录成功后的回调void _listenLogin(BaseResp resp) {if (resp is LoginResp) {_loginResp = resp;final String content = 'login: ${resp.openid} - ${resp.accessToken}';print(  content);if(resp.openid!=null && resp.accessToken!=null){//登录成功了//在这里就可有拿到回调的openid,去执行自己业务的操作了。}} else if (resp is ShareMsgResp) {final String content = 'share: ${resp.ret} - ${resp.msg}';}}final StreamSubscription<BaseResp> _respSubs =Tencent.instance.respStream().listen(_listenLogin);

自己的话:

对于我这种IOS开发纯小白的人员,感觉用flutter实现IOS上的QQ登录 ,可以说就不是在写代码,几乎全部时间都在搞各种配置和资料填写,简直蒙圈,各种ID的填写都是试探的心态,一步一坑。

比如: (1)在填写QQ互联里的资料的时候,它用到appstoreID,我就找了好久,它其实是apple开发者后台里,在你项目的信息里。(如果你开发第一版还没创建项目就没有这个ID,你必须先创建项目)

(2)在填写QQ互联的资料里,它需要填URL Scheme:
它的生成方法很奇葩:

二、微信登录

使用的第三方库

fluwx
git地址:https://github.com/OpenFlutter/fluwx

具体操作方法:

微信的配置 方法和步骤跟QQ很像。

1、配置 Universal Links

这一步配置我已经在做QQ登录的时候,已经配置过了。所以不再赘述。

1、 在微信开放平台里填写完整资料,拿到它在微信平台里的APPID

3、在xcode的info里 上配置一些信息

这里也跟QQ登录所需要配置的地方一样,但是填的内容不一样。
(1)url Types,填写weixin ,URL Schemas 填写:wx+你微信平台的APPID

(2)xcode->info 里添加微信相关的白名单

4、引入第三发插件包

5、完成以上配置后,就可以编写代码了。

核心代码如下:

  //微信初始化bool isAnroid = true;bool isIos = true;if(regwx){return;}regwx=await registerWxApi(appId: "你的WeixinAPPID",doOnAndroid: isAnroid,doOnIOS: isIos,universalLink: "你上面第一步配置的universalLink");//判断是否安装微信isWeChatInstalled.then((value){})//授权登录sendWeChatAuth(scope: 'snsapi_userinfo', state:"wechat_sdk_demo_test").then((data) {}).catchError((e) {});

三、apple账号登录

使用的第三方库

sign_in_with_apple
示例地址:https://pub.dev/packages/sign_in_with_apple/example

具体操作方法:

1、引入第三方插件库

2、编写代码

//核心就这一个方法,去获取登录用户信息
final credential = await SignInWithApple.getAppleIDCredential(scopes: [AppleIDAuthorizationScopes.email,AppleIDAuthorizationScopes.fullName,],);if (credential != null) {//获取的信息}

四、自动识别手机号一键登录

这个跟公司购买合作的平台有关。
我们公司是用的闪验平台
git地址:https://github.com/253CL/CLShanYan_Flutter

因为每个平台不一样,我这里就不细讲他是怎么配置了。
我想简单讲一下我的感受和认识, 它的实现方式是,又封装了一套自己的UI组件集成了自己API,然后来生成页面。
可以这么理解:flutter的存在,是flutter自己底层封装了生成安卓和iOS的代码。 而闪验 是基于flutter又封装了 自己的UI和事件,可以生成它自己的UI效果。 简单的看一下它提供的使用方法吧:下面是截的一部分图。

五、扫一扫 会分享编程教程和资料,让我们一起成长

flutter在IOS上的登录实现——QQ登录、微信登录、自动识别手机号一键登录、apple登录相关推荐

  1. flutter在IOS上显示英文

    flutter在IOS上显示英文 背景 公司现在正在用纯Flutter作项目.今天测试的妹纸发现在IOS手机上长按文字,弹出的提示框显示的是英文. 我们在用国外的一些Flutter Plugin的时候 ...

  2. Flutter在iOS上的表现就是一坨屎

    Flutter在iOS上的表现就是一坨屎: 用户体验差到了极点: 目前来说不值得投入大量精力去研究: 了解一下原理可以. 转载于:https://www.cnblogs.com/feng9exe/p/ ...

  3. ios使用友盟分享到QQ/微信时时如何判断手机上是否安装了QQ以及微信的客户端

    iOS 在使用友盟时,使用微信分享.登录必须安装微信客户端,QQ登录.QQ空间分享过程中必须安装手机QQ客户端,在未安装客户端的设备上测试会提示下载,这是不符合苹果审核规则的.这是微信及腾讯QQ互联导 ...

  4. QQ、微信、新浪 利用refresh_token重新登录

    项目中有用到第三方登录,第三方登录和分享选择了友盟.随着版本的升级和需求的变化,第三方登录我不得不废弃友盟. 现在需求进行了更改,我们知道第三方登录需要获取access_token,但是access_ ...

  5. 微信小程序手机号一键登录--获取用户手机号--微信小程序一键登录

    前提:现在微信小程序登录我参考了几个大的公司的登录,基本分下面几种 1.微信用户一键登录,授权用户基本信息,不获取手机号 2.微信手机号一键登录,根据手机号去关联在其他平台数据,用手机号关联.然后再调 ...

  6. Flutter打包iOS上传 AppStore ERROR ITMS-90432: “Invalid Swift Support. The file Runner.app/Frameworks/.l

    在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...

  7. Android 用官方SDK实现第三方(qq、微信、微博等)分享和登录

    转载请标明源地址:http://blog.csdn.net/gaolei1201/article/details/45873559 可下载体验本人在项目中的实战运用:http://zhushou.36 ...

  8. Android 项目必备(三十七)-->使用友盟集成 QQ、微信、微博等第三方分享与登录

    文章目录 效果图 实战 最近项目需要加入第三方分享和登录功能,之前其他项目的第三方分享和登录一直都使用ShareSDK实现的.为了统一使用友盟的全家桶,所以三方分享和登录也就选择了友盟. 效果图 实战 ...

  9. 微信小程序手机号绑定功能(登录后绑定)

    1.手机号绑定并不是手机号登录 所以他其实就是一个添加 主要是他有一个短信发送 接收验证码验证的过程 首先是小程序端 HTML 给你一个按钮绑定点击 bindtap 事件 跳转至手机号绑定页面 < ...

最新文章

  1. 【数据结构】图的深度优先遍历 广度优先遍历
  2. Django开启HTTPS
  3. golang基本数据类型string字符串常用方法代码示例
  4. java中printarray和selectsort方法_算法题(一)
  5. boost::geometry::discrete_frechet_distance用法的测试程序
  6. 什么是1st tier conference?
  7. .Net 平台下的版本控制 --- Subversion(SVN)1.6.x
  8. python读取压缩文件的指定后缀的文件_python打包压缩、读取指定目录下的指定类型文件...
  9. javascript轻松解决前端数据排序(互换,置顶,上移,下移),快收藏吧
  10. 时域、频域和时频分析的区别
  11. ImageOptim-无损图片压缩Mac版
  12. 使用 IDEA 的阿里插件扫描出的问题的级别
  13. C++语言99个常见编程错误 常见错误24:晦涩难懂的operator-
  14. 推荐学习法——思维导图
  15. 技术VC=技术+VC?技术VC公司如何生存?
  16. 原生JS获取QQ好友列表
  17. 爱奇艺qsv视频下载后怎么转换为3gp格式
  18. 有哪些小巧舒适的蓝牙耳机?推荐几款小巧且舒适的蓝牙耳机
  19. LoadRunner关联详解
  20. 用google协作平台6步轻松建立免费个人网站

热门文章

  1. 综合交易平台API技术开发指南
  2. 创建工程文件(完整流程)
  3. w ndows10装什么浏览器,Windows10系统默认启用IE浏览器方法
  4. 播放器实战22 解决花屏与卡顿问题
  5. fMRI Tutorial:FSL处理功能核磁共振数据
  6. CDH6.2配置spark.yarn.jars目录
  7. 我的世界rpg服务器背包位置,我的世界查看玩家背包方法 如何查看玩家背包
  8. 【谈谈疫情+金三银四下测试面试的行情】一个月内连续面试40+位候选人。
  9. Automated Installations of Multiple RHEL/CentOS 7 Distributions using PXE Server and Kickstart Files
  10. 区块链入门 第二部分