flutter在IOS上的登录实现——QQ登录、微信登录、自动识别手机号一键登录、apple登录
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登录相关推荐
- flutter在IOS上显示英文
flutter在IOS上显示英文 背景 公司现在正在用纯Flutter作项目.今天测试的妹纸发现在IOS手机上长按文字,弹出的提示框显示的是英文. 我们在用国外的一些Flutter Plugin的时候 ...
- Flutter在iOS上的表现就是一坨屎
Flutter在iOS上的表现就是一坨屎: 用户体验差到了极点: 目前来说不值得投入大量精力去研究: 了解一下原理可以. 转载于:https://www.cnblogs.com/feng9exe/p/ ...
- ios使用友盟分享到QQ/微信时时如何判断手机上是否安装了QQ以及微信的客户端
iOS 在使用友盟时,使用微信分享.登录必须安装微信客户端,QQ登录.QQ空间分享过程中必须安装手机QQ客户端,在未安装客户端的设备上测试会提示下载,这是不符合苹果审核规则的.这是微信及腾讯QQ互联导 ...
- QQ、微信、新浪 利用refresh_token重新登录
项目中有用到第三方登录,第三方登录和分享选择了友盟.随着版本的升级和需求的变化,第三方登录我不得不废弃友盟. 现在需求进行了更改,我们知道第三方登录需要获取access_token,但是access_ ...
- 微信小程序手机号一键登录--获取用户手机号--微信小程序一键登录
前提:现在微信小程序登录我参考了几个大的公司的登录,基本分下面几种 1.微信用户一键登录,授权用户基本信息,不获取手机号 2.微信手机号一键登录,根据手机号去关联在其他平台数据,用手机号关联.然后再调 ...
- Flutter打包iOS上传 AppStore ERROR ITMS-90432: “Invalid Swift Support. The file Runner.app/Frameworks/.l
在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...
- Android 用官方SDK实现第三方(qq、微信、微博等)分享和登录
转载请标明源地址:http://blog.csdn.net/gaolei1201/article/details/45873559 可下载体验本人在项目中的实战运用:http://zhushou.36 ...
- Android 项目必备(三十七)-->使用友盟集成 QQ、微信、微博等第三方分享与登录
文章目录 效果图 实战 最近项目需要加入第三方分享和登录功能,之前其他项目的第三方分享和登录一直都使用ShareSDK实现的.为了统一使用友盟的全家桶,所以三方分享和登录也就选择了友盟. 效果图 实战 ...
- 微信小程序手机号绑定功能(登录后绑定)
1.手机号绑定并不是手机号登录 所以他其实就是一个添加 主要是他有一个短信发送 接收验证码验证的过程 首先是小程序端 HTML 给你一个按钮绑定点击 bindtap 事件 跳转至手机号绑定页面 < ...
最新文章
- 【数据结构】图的深度优先遍历 广度优先遍历
- Django开启HTTPS
- golang基本数据类型string字符串常用方法代码示例
- java中printarray和selectsort方法_算法题(一)
- boost::geometry::discrete_frechet_distance用法的测试程序
- 什么是1st tier conference?
- .Net 平台下的版本控制 --- Subversion(SVN)1.6.x
- python读取压缩文件的指定后缀的文件_python打包压缩、读取指定目录下的指定类型文件...
- javascript轻松解决前端数据排序(互换,置顶,上移,下移),快收藏吧
- 时域、频域和时频分析的区别
- ImageOptim-无损图片压缩Mac版
- 使用 IDEA 的阿里插件扫描出的问题的级别
- C++语言99个常见编程错误 常见错误24:晦涩难懂的operator-
- 推荐学习法——思维导图
- 技术VC=技术+VC?技术VC公司如何生存?
- 原生JS获取QQ好友列表
- 爱奇艺qsv视频下载后怎么转换为3gp格式
- 有哪些小巧舒适的蓝牙耳机?推荐几款小巧且舒适的蓝牙耳机
- LoadRunner关联详解
- 用google协作平台6步轻松建立免费个人网站
热门文章
- 综合交易平台API技术开发指南
- 创建工程文件(完整流程)
- w ndows10装什么浏览器,Windows10系统默认启用IE浏览器方法
- 播放器实战22 解决花屏与卡顿问题
- fMRI Tutorial:FSL处理功能核磁共振数据
- CDH6.2配置spark.yarn.jars目录
- 我的世界rpg服务器背包位置,我的世界查看玩家背包方法 如何查看玩家背包
- 【谈谈疫情+金三银四下测试面试的行情】一个月内连续面试40+位候选人。
- Automated Installations of Multiple RHEL/CentOS 7 Distributions using PXE Server and Kickstart Files
- 区块链入门 第二部分