虾写前端iOS 开发 虾写iOS

iOS 微信 QQ 登陆 分享

2016-07-03  本文已影响1566人  github加星点进来

1.微信登陆分享和qq的登陆分享 (图文挺长的,有兴趣的可以看看。)

传送门https://github.com/976500133/WeChatLoginAndShares

微信sdk说明(官网地址)

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417694084&token=&lang=zh_CN

QQSDK 说明 (官网地址)

http://wiki.open.qq.com/wiki/IOS_API%E8%B0%83%E7%94%A8%E8%AF%B4%E6%98%8E

http://wiki.connect.qq.com/get_simple_userinfo

首先 需要在微信开放平台注册开发者帐号,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。

在qq开发平台获取QQID

我们先到官网下载微信的sdk。按照官网介绍来一步一步配置。理论上配置下来不会有什么问题的(配置的太多,略过吧)

这里有1个值得注意的地方是在swift 桥接OC 的时候,

由于 微信使用的是压缩的  .a 文件, 所用桥接的时候只要使用

#import"WXApi.h"

然而qq使用的是.framework,应该使用

<#import>

Bolue-Bridging-Header.h 截图

这里说下LSApplicationQueriesSchemes    也叫URL Schemes白名单

iOS9增加了隐私控制,自己的应用如果需要调用它应用,需要在工程的info.plist中添加 ,

如果不添加该项,使用canOpenURL:判断应用是否安装时会报错。

在info 的url types 中添加url scheme

什么是url scheme呢。我有截图

可以理解为LSApplicationQueriesSchemes 添加了之后,允许2个APP 直接通信 ,

url schemes 添加之后,微信和qq 就能识别打开他们的app的身份、因为我们把appid 传给了微信,qq同理

到此 2个APP 直接就能互相打开了

微信登陆 和 QQ 登陆 见 ThirdLogin.swift ,分四步

拉起登陆请求-微信

拉起登陆请求-  qq

上面核心代码能实现 微信和qq注册功能

微信采用的是 nsnotification

qq 采用的是TencentSessionDelegate 代理模式

微信 说明

1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;

2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;

3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

如图

===========分享功能===== 相对简单==========

文件是

Wechat+Extension.swift

QQShare+Extension.swift

里面有详细的描述

分享功能WXApiShare, 主要需要

/**

- parameter scence:请求发送场景默认聊天界面

- parameter image:消息缩略图

- parameter title:标题

- parameter description:描述内容

- parameter url:地址

*/

分享或收藏的目标场景,通过修改scene场景值实现。

发送到聊天界面——WXSceneSession

发送到朋友圈——WXSceneTimeline

添加到微信收藏——WXSceneFavorite

分享前判断微信是否支持

判断qq是否支持

拉起微信分享功能的代码是 , 需要组装个WXMediaMessage

拉起qq分享的代码

==========目前还缺个添加收藏图标===========

完结

上一篇下一篇

猜你喜欢

热点阅读