React Native 接入微博、微信、QQ 登录功能
在 App 开发中我们经常需要在用户登录模块接入 SNS 登录组件这样会大大提高用户的注册体验。特别当一个不是刚性需求 App 推广的时候这样会很大的降低用户体验的成本没有人愿意忍受输入邮箱、手机号码去注册一个账号的流程。本文主要分享了在 React Native 中接入微博、微信、QQ 登录的流程以及此前登录组件中修复的一个已知 bug 的修复。我的源博客地址React Native 接入微博、微信、QQ 登录功能 | 好记性不如烂键盘使用的登录组件这里使用的组件是 react-native-open-share此组件从 iOS 的 SNS 通用登录组件 OpenShare fork 出来的添加了到 React Native 的组件映射。源作者是 Jiayao Wu后来我在使用的过程中发现了新浪微博登录的一个 bug下面会说明此 bug 的原因。我 fork 出来后修复了此 bug修复后的项目在 react-native-open-share等待源作者 merge 进 master 中去目前需要使用的可以去我的项目地址中下载使用。项目接入项目前期具体接入的过程在项目页面已经做了详细的说明如果在接入过程中遇到什么问题欢迎留言讨论。这里主要针对接入过程中可能需要注意的几个点作一些说明。关于新浪微博、微信、QQ 接入审核的注意点三个平台都需要进行项目提交审核一般都是一到两个工作日审核结束。新浪微博、QQ 获取登录权限是免费的微信的登录权限以及一些其他的高级功能需要每年缴纳300元人民币的费用。平台对应的地址分别为新浪微博微信QQ关于项目中 key 以及认证 URL 的设置项目中两个地方需要设置key分别为Info.plist和AppDelegate.m中。需要注意的是在Info.plist中key 的前面是有前缀的按照示例程序中的添加修改即可一定要注意。新浪微博需要特别注意授权回调页的 URL 需要和登录组件中的 URL 完全一致因为 App 不涉及到回调后的页面所以只要保证两个 URL 一致并能访问即可。组件中的 URL 地址定义在文件SocietyLoginManager.m中的约 105 行处。其他没有特别需要注意的地方按照项目接入说明接入即可。React Native 中的使用在 React Native 通过添加三个 SNS 的图标添加上对应的方法调用即可代码如下var openShare require(react-native-open-share); //头部导入组件 _weiboLogin: function() { var _this this; openShare.weiboLogin(); if (!_this.weiboLogin) { _this.weiboLogin DeviceEventEmitter.addListener( managerCallback, (response) { AlertIOS.alert( response, JSON.stringify(response) ); _this.weiboLogin.remove(); delete _this.weiboLogin; } ); } }, _qqLogin: function() { var _this this; openShare.qqLogin(); if (!_this.qqLogin) { _this.qqLogin DeviceEventEmitter.addListener( managerCallback, (response) { AlertIOS.alert( response, JSON.stringify(response) ); _this.qqLogin.remove(); delete _this.qqLogin; } ); } }, _wechatLogin: function() { var _this this; openShare.wechatLogin(); if (!_this.wechatLogin) { _this.wechatLogin DeviceEventEmitter.addListener( managerCallback, (response) { AlertIOS.alert( response, JSON.stringify(response) ); _this.wechatLogin.remove(); delete _this.wechatLogin; } ); } }接入后就可以在 alert 中看到返回的 json 数据了。之前组件中存在的一个 bug 处理之前的组件在微博返回数据的时候直接使用 NSDictionary 进行返回了但是微博的 SDK 中返回日期类型的时候会导致 React Native 解析 json 的时候报错错误如下*** Terminating app due to uncaught exception NSInvalidArgumentException, reason: Invalid type in JSON write (__NSDate) *** First throw call stack: ...主要的出错代码在文件SocietyLoginManager.m中的约 112 行处。所以对返回的数据增加对应的日期格式化函数并调用即可。主要的处理函数相关的调用去查看源代码即可。//处理 返回数据中的 expirationDate 值因为值的格式有问题转换成 string 后才能符合 json 的格式要求。 ********开始******** //Commit by Parry at 2016-01-26 - (NSMutableDictionary*)change: (NSDictionary *)message { NSMutableDictionary* data [message mutableCopy]; if ([message objectForKey:expirationDate]) { NSDateFormatter *dateToStringFormatter [[NSDateFormatter alloc] init]; [dateToStringFormatter setDateFormat:yyyy-MM-dd HH:mm:ss]; NSDate *date [data objectForKey:expirationDate]; NSString *strDate [dateToStringFormatter stringFromDate:date]; data [message mutableCopy]; [data setObject:strDate forKey:expirationDate]; } return data; } //处理 返回数据中的expirationDate值因为值的格式有问题转换成 string 后才能符合 json 的格式要求。 ********结束********这样这个 React Native 下的 SNS 登录通用组件就可以完美地使用了。使用中有任何问题欢迎留言交流、讨论。

相关新闻

FreeSCADA开源SCADA系统架构深度解析与工业自动化应用实践

FreeSCADA开源SCADA系统架构深度解析与工业自动化应用实践

FreeSCADA开源SCADA系统架构深度解析与工业自动化应用实践 【免费下载链接】FreeSCADA 项目地址: https://gitcode.com/gh_mirrors/fr/FreeSCADA FreeSCADA是一款基于微软.NET技术栈构建的开源数据采集与监视控制系统,专为工业自动化场景设计。作为完全开源…

2026/10/18 0:49:14 阅读更多 →
小心DataContractJsonSerializer和JavaScriptSerializer的内部实现差异

小心DataContractJsonSerializer和JavaScriptSerializer的内部实现差异

问题的引子 先来看问题的引子。 定义一个下面这样的类,此类有Serializable属性,并且有一个属性的定义没有使用自动属性来实现。 1 [Serializable]2 public class Users3 {4 public int UserID { get; set; }5 6 public string UserName { get; s…

2026/10/17 12:56:02 阅读更多 →
UE5集成3D高斯溅射渲染:XV3DGS插件实战避坑指南

UE5集成3D高斯溅射渲染:XV3DGS插件实战避坑指南

1. 项目概述:当UE5遇见3D高斯渲染 如果你是一个UE5的开发者或者技术美术,最近肯定没少被“3D高斯溅射”这个词刷屏。这个从NeRF等神经渲染领域杀出来的技术,凭借其惊人的重建质量和飞快的渲染速度,迅速成为了三维重建和实时渲染的…

2026/10/11 15:40:20 阅读更多 →

最新新闻

Unity项目接入APNs远程推送:证书配置、deviceToken获取与原生交互全流程

Unity项目接入APNs远程推送:证书配置、deviceToken获取与原生交互全流程

1. APNs远程推送接入前的关键认知:先搞懂一整条链路如果你的Unity项目要在iOS上接入远程推送,第一反应大概率是:这不就是申请个推送证书,后端调个接口,手机弹个通知吗?等真的动手才发现,Unity这…

2026/10/18 0:49:30 阅读更多 →
提高LCD屏幕刷新效率:基于TaoToken的ST7789驱动配置与LCD_Fill优化实践

提高LCD屏幕刷新效率:基于TaoToken的ST7789驱动配置与LCD_Fill优化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:49:30 阅读更多 →
从零部署OpenClaw到阿里云ECS:打造云端AI助手的实践指南

从零部署OpenClaw到阿里云ECS:打造云端AI助手的实践指南

简介:基于阿里云ECS的OpenClaw一键部署方案,是一份面向无运维经验技术爱好者与开发者的实操指南,旨在帮助用户借助一台低配云服务器,在十五分钟内完成个性化AI助手的云端搭建与管理。整份指南以单个PDF文档呈现,压缩包…

2026/10/18 0:49:30 阅读更多 →
公钥密码学与伪随机数:密钥生成中的随机源与熵池管理

公钥密码学与伪随机数:密钥生成中的随机源与熵池管理

1. 从一个看似矛盾的问题说起公钥密码学里有一个特别反直觉的事实:你用来加密的密钥是公开的,任何人都能拿到,但别人依然解不开你的密文。这件事第一次接触会觉得像魔术,但支撑它的数学基础其实相当朴素——单向函数。正向计算容易…

2026/10/18 0:48:30 阅读更多 →
信息安全意识PPT设计:从知道到做到的行为转化工具包

信息安全意识PPT设计:从知道到做到的行为转化工具包

简介:本资源是一份面向全民网络安全素养提升的国家网络安全宣传周主题PPT课件,适用于企事业单位安全培训、高校通识教育及社区科普宣讲等场景。内容紧扣信息泄露风险防范与网络安全意识培养,系统梳理了网络安全四大核心特征(机密性…

2026/10/18 0:48:30 阅读更多 →
Hy3-oQ2模型卡深度解读:什么是oQ校准量化,2.7 bits/weight意味着什么

Hy3-oQ2模型卡深度解读:什么是oQ校准量化,2.7 bits/weight意味着什么

【免费下载链接】Hy3-oQ2 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Hy3-oQ2 点击查看 免费下载 Hy3-oQ2 是腾讯混元 Hy3(295B MoE)大模型的 MLX oQ 校准量化版本:以 2.7 bits/weight 的有效精度,把…

2026/10/18 0:48:30 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →