来自  资质荣誉 2019-09-19 14:09 的文章
当前位置: 澳门太阳娱乐手机登录 > 资质荣誉 > 正文

iOS微信之简单文本分享,iOS微信之登录授权

先上效果图

微信开放平台的开发者认证终于OK了,那么下面就可以进行微信登录授权了。

图片 1效果图.png

图片 2

开发工具:XCode 7.3.1ShareSDK版本:V3.1.1

Paste_Image.png

ShareSDK官网:

前言

开发工具:XCode 7.3.1
开发环境:OS X EI Capitan 版本 10.11.5
ShareSDK版本:V3.1.1

图片 3官网.png图片 4创建一个APP.png

一.注册ShareSDK帐号并创建一个APP

ShareSDK官网:http://www.mob.com/#/

图片 5

官网.png

图片 6

创建一个APP.png

得到App Key,App Secret(后面的代码整合中会用到)

图片 7

获取AppKey,AppSecret.png

得到App Key,App Secret(后面的代码整合中会用到)

二.从微信开放平台获取AppID,AppSecret

参考博文:
http://www.jianshu.com/p/839dc30f2250
http://www.jianshu.com/p/c9b688fdb961

图片 8

Paste_Image.png

图片 9获取AppKey,AppSecret.png

三.下载SDK

下载地址:
http://www.mob.com/#/downloadDetail/ShareSDK/ios

图片 10

SDK下载.png

图片 11

SDK配置.png

SDK下载完成后,得到如下的文件目录结构

图片 12

SDK文件目录.png

参考博文:

四.代码整合

下载地址:

1.导入SDK

图片 13

导入SDK.png

图片 14SDK下载.png图片 15SDK配置.png

2.设置支持HTTP请求

图片 16

支持HTTP请求.png

参考博文:http://www.jianshu.com/p/5935dff47e4f

SDK下载完成后,得到如下的文件目录结构

3.设置sheme白名单

图片 17

设置Scheme白名单.png

参考博文:http://www.jianshu.com/p/f974f4cbba18

图片 18SDK文件目录.png

4.关闭bitcode

图片 19

禁用bitcode1.png

图片 20

禁用bitcode2.png

1.导入SDK

图片 21导入SDK.png

5.设置URL

图片 22

设置URL.png

2.设置支持HTTP请求

图片 23支持HTTP请求.png参考博文:

6.设置Build phases

图片 24

设置Build Phases.png

3.设置sheme白名单

图片 25设置Scheme白名单.png参考博文:

7.核心代码
[ShareSDK getUserInfo:SSDKPlatformTypeWechat
       onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
 {
     if (state == SSDKResponseStateSuccess)
     {
         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"
                                                         message:@"已获取授权"
                                                        delegate:nil
                                               cancelButtonTitle:@"OK"
                                               otherButtonTitles:nil, nil];
         [alert show];

         NSLog(@"uid=%@"        ,user.uid);
         NSLog(@"%@"            ,user.credential);
         NSLog(@"token=%@"      ,user.credential.token);
         NSLog(@"nickname=%@"   ,user.nickname);
     }

     else
     {
         NSLog(@"%@",error);
     }

 }];

效果图

图片 26

Paste_Image.png

源码:
https://github.com/andli0626/wx_authlogin_by_sharesdk.git

4.关闭bitcode

图片 27禁用bitcode1.png图片 28禁用bitcode2.png

五.项目实战

主要分2种情况:

5.设置URL

图片 29设置URL.png

第一种:APP有注册,登录功能

APP本身有一套自己的用户系统,微信登录只是一种登录方式,那么就需要实现原有用户与微信用户的绑定

图片 30

第一种情况.png

补充说明:
要数据,不要功能
如果你的应用拥有用户系统,就是说你的应用自己就有注册和登录功能,使用第三方登录只是为了拥有更多用户,那么你可以依照下面的步骤来做:
1、用户触发第三方登录事件
2、showUser(null)请求授权用户的资料(这个过程中可能涉及授权操作)
3、如果onComplete()方法被回调,将其参数Hashmap代入你应用的Login流程
4、否则提示错误,调用removeAccount()方法,删除可能的授权缓存数据
5、Login时客户端发送用户资料中的用户ID给服务端
6、服务端判定用户是已注册用户,则引导用户进入系统,否则返回特定错误码
7、客户端收到“未注册用户”错误码以后,代入用户资料到你应用的Register流程
8、Register时在用户资料中挑选你应用的注册所需字段,并提交服务端注册
9、服务端完成用户注册,成功则反馈客户端引导用户进入系统
10、否则提示错误,调用removeAccount()方法,删除可能的授权缓存数据

参考示例:比如简书,网易云音乐的帐号绑定实现过程,都是值得借鉴的

6.设置Build phases

图片 31设置Build Phases.png

第二种:APP无注册功能

APP本身没有自己的用户系统,微信登录是唯一的入口,只要授权通过,就可以进入APP

图片 32

第二种情况.png

补充说明:
要功能,不要数据
如果你的应用不具备用户系统,而且也不打算维护这个系统,那么你可以依照下面的步骤来做:
1、用户触发第三方登录事件
2、调用platform.getDb().getUserId()请求用户在此平台上的ID
3、如果用户ID存在,则认为用户是合法用户,允许进入系统;否则调用authorize()
4、authorize()方法将引导用户在授权页面输入帐号密码,然后目标平台将验证此用户
5、如果onComplete()方法被回调,表示授权成功,引导用户进入系统
6、否则提示错误,调用removeAccount()方法,删除可能的授权缓存数据
7.核心代码

AppDelegate.m- application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// 从sharesdk平台获取NSString *sharesdkAppKey = @"";#pragma mark 隐藏“微信收藏”平台// 不要使用微信总平台进行初始化// @(SSDKPlatformTypeWechat),// 使用微信子平台进行初始化,即可// @(SSDKPlatformSubTypeWechatSession),// @(SSDKPlatformSubTypeWechatTimeline),[ShareSDK registerApp:sharesdkAppKey activePlatforms:@[@(SSDKPlatformSubTypeWechatSession),@(SSDKPlatformSubTypeWechatTimeline)] onImport:^(SSDKPlatformType platformType) { switch (platformType) { case SSDKPlatformTypeWechat: [ShareSDKConnector connectWeChat:[WXApi class]]; break; default: break; } } onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) { switch (platformType) { case SSDKPlatformTypeWechat: // 从微信开放平台获取 AppID,AppSecret [appInfo SSDKSetupWeChatByAppId:@"" appSecret:@""]; break; default: break; } }];return YES;}-onResp:(BaseResp *)resp{NSLog(@"The response of wechat.");}

分享代码

-clickShareButton:sender{//1、创建分享参数NSArray* imageArray = @[[UIImage imageNamed:@"shareImg.png"]];if (imageArray) { NSMutableDictionary *shareParams = [NSMutableDictionary dictionary]; [shareParams SSDKSetupShareParamsByText:@"分享内容" images:imageArray url:[NSURL URLWithString:@"http://mob.com"] title:@"分享标题" type:SSDKContentTypeAuto]; //2、分享(可以弹出我们的分享菜单和编辑界面) [ShareSDK showShareActionSheet:nil //要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响 items:nil shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) { switch  { case SSDKResponseStateSuccess: { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alertView show]; break; } case SSDKResponseStateFail: { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失败" message:[NSString stringWithFormat:@"%@",error] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; break; } default: break; } } ]; }}

源码地址

万事开头难,完成一个简单文本分享,后面的其他API的使用就可以参考官方文档,一步步实践了。

参考资料:

ShareSDK 官方文档http://wiki.mob.com/ios%E7%AE%80%E6%B4%81%E7%89%88%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90/微信开放平台官方文档https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417694084&token=2fd5d537adee029114cb21e9175ac913d51ff274&lang=zh_CN

图片 33image

建议

对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已安装微信客户端,对未安装的用户隐藏微信登录按钮,只提供其他登录方式(比如手机号注册登录、游客登录等)

参考资料

ShareSDK 第三方登录 官方文档
http://wiki.mob.com/%E7%AC%AC%E4%B8%89%E6%96%B9%E7%99%BB%E5%BD%95/#h1-0
微信开放平台 登录授权整合 官方说明文档
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=&lang=zh_CN

本文由澳门太阳娱乐手机登录发布于 资质荣誉,转载请注明出处:iOS微信之简单文本分享,iOS微信之登录授权

关键词: