iOS微信登录与分享

由于公司需要、要求此次三方登录全部用官方SDK,需要配置友盟和ShareSDK的同学,这篇文章帮不上太多忙,看一下就好。

1、集成SDK
1.1、(手动集成)下载并解压SDK​:下载链接,并拖拽 libWeChatSDK.a,WXApi.h,WXApiObject.h 三个文件到Xcode⼯工程内。
1.2、(通过CocoaPods集成)
pod 'WechatOpenSDK'

2、添加依赖库(CocoaPods集成的不用添加)
SystemConfiguration.framework
libz.tbd
libsqlite3.0.tbd
libc++.tbd
CoreTelephony.framework

3、新增⼀一条URL Scheme:选中⼯工程Target -> Info -> URLTypes;
identifier随便写,URL scheme写成微信开放平台申请的appid

iOS微信登录与分享_第1张图片
微信URL scheme

4、添加⽩白名单:LSApplicationQueriesSchemes新增⽩名单****

微信白名单

5、AppDelegate中向微信注册Appid,并添加处理回调的代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [WXApi registerApp:WxAppid enableMTA:YES];
     return YES;
}

//iOS9.0以前使用

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
return YES;
}

// 9.0以后使用新API接口

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{
  [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
    return YES;
}

代理在哪个类实现的回调方法 就写哪个类就行了。
以上集成配置 微信登录和微信分享是一样的,做一遍操作即可。

1、微信登录

//微信登录(微信登录按钮点击事件,可在回调代理中获取微信授权成功code)
- (void)WeChatLogin:(UIButton *)sender{
    if ([WXApi isWXAppInstalled]) {
        WXApiManager *manager = [WXApiManager sharedManager];
        manager.delegate = self;
        SendAuthReq *req = [[SendAuthReq alloc] init];
        req.scope = @"snsapi_userinfo";
        req.state = @"111111";
        [WXApi sendReq:req];
        
    }
    else {
        [self setupAlertController];
    }
}
#pragma mark - WXApiManagerDelegate======================微信支付/微信登录/微信分享回调代理================WXApiManagerDelegate
-(void)loginSuccessByCode:(NSString *)code{
    //回调成功,吊起登录接口
    SLog(@"微信登录授权成功");
//调用后台微信授权登录接口
    [self getWeChatLoginData:code];
}

现在微信登录基本操作已经完事了,接下来绑定手机号,填写信息什么的,就看产品怎么表演了。
以上是微信登录
以下是微信分享

2、微信分享

// 就这么一个方法就行了
- (void)WeChatShare{
    WXApiManager *manager = [WXApiManager sharedManager];
    manager.delegate = self;
     NSString *kLinkURL = shareUrlStr;
     NSString *kLinkTitle = shareTitleStr;
     NSString *kLinkDescription = shareDetailStr;
    SendMessageToWXReq *req1 = [[SendMessageToWXReq alloc]init];
    // 是否是文档
    req1.bText =  NO;
    //    WXSceneSession  = 0,        /**< 聊天界面    */
    //    WXSceneTimeline = 1,        /**< 朋友圈      */
    //    WXSceneFavorite = 2,
    req1.scene = WXSceneSession;
    //创建分享内容对象
    WXMediaMessage *urlMessage = [WXMediaMessage message];
    urlMessage.title = kLinkTitle;//分享标题
    urlMessage.description = kLinkDescription;//分享描述
    [urlMessage setThumbImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:shareImageStr]]]];//分享图片,使用SDK的setThumbImage方法可压缩图片大小
    //创建多媒体对象
    WXWebpageObject *webObj = [WXWebpageObject object];
    webObj.webpageUrl = kLinkURL;//分享链接
    //完成发送对象实例
    urlMessage.mediaObject = webObj;
    req1.message = urlMessage;
    //发送分享信息
    [WXApi sendReq:req1];
}
#pragma mark - WXApiManagerDelegate====================WXApiManagerDelegate
-(void)shareSuccessByCode:(int)code{
    //分享成功提示
    [SVProgressHUD showSuccessWithStatus:@"分享成功!"];
}

你可能感兴趣的:(iOS微信登录与分享)