WechatKit 一款快速实现微信第三方登录的框架(Swift版)

网友投稿 1080 2022-11-02

WechatKit 一款快速实现微信第三方登录的框架(Swift版)

WechatKit 一款快速实现微信第三方登录的框架(Swift版)

WechatKit

Getting Started

CocoaPods

pod 'WechatKit'

Carthage

安装Carthage

github "starboychina/WechatKit"

Setting

设置URL scheme 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你在微信开放平台,注册的应用程序id

IOS9以后 需要添加weixin到白名单(如图) 或以源代码方式打开info.plist, 并添加以下内容.

LSApplicationQueriesSchemes wechat weixin

AppDelegate的handleOpenURL和openURL方法: 在AppDelegate.swift中添加import WechatKit

/// iOS 9 以后将弃用 请用下面的方法 #20 /// -> NS_DEPRECATED_IOS(4_2, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED; func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { return WechatManager.shared.handleOpenURL(url) // 如需要使用其他第三方可以 使用 || 连接 其他第三方库的handleOpenURL // return WechatManager.shared.handleOpenURL(url) || TencentOAuth.HandleOpenURL(url) || WeiboSDK.handleOpenURL(url, delegate: SinaWeiboManager.shared) ...... }

/// iOS 9.0 以后请使用这个方法 /// Please use this (application:openURL:options:) func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { return WechatManager.shared.handleOpenURL(url) // 如需要使用其他第三方可以 使用 || 连接 其他第三方库的handleOpenURL // return WechatManager.shared.handleOpenURL(url) || TencentOAuth.HandleOpenURL(url) || WeiboSDK.handleOpenURL(url, delegate: SinaWeiboManager.shared) ...... }

Usage

注册app

WechatManager.appid = "微信开放平台,注册的应用程序id" WechatManager.appSecret = "微信开放平台,注册的应用程序Secret"

检测微信是否安装

WechatManager.shared.isInstalled()

使用微信登录 默认会记住openid,以及access_token,在token还在有效期时,调用checkAuth则不会打开微信客户端,直接使用token和微信服务器获取认证信息

WechatManager.shared.checkAuth { result in switch result { case .failure(let errCode)://登录失败 print(errCode) case .success(let value)://登录成功 value为([String: String]) 从微信返回的openid access_token 以及 refresh_token print(value) //当前是在子线程,如需回到主线程调用 DispatchQueue.main.async { print(value) } } }

WechatManager.shared.getUserInfo { result in switch result { case .failure(let errCode)://获取失败 print(errCode) case .success(let value)://获取成功 value为([String: String]) 微信用户基本信息 print(value) //当前是在子线程,如需回到主线程调用 DispatchQueue.main.async { print(value) } } }

退出登录 由于默认会记住openid,以及access_token,如需要切换用户则需要退出登录.

WechatManager.shared.logout()

分享到微信

Delegation

分享Delegation

License

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SandBox是一个基于django框架开发的轻量级办公平台
下一篇:PHP-DI是一个依赖注入容器,强大且与框架无关
相关文章

 发表评论

暂时没有评论,来抢沙发吧~