最近在写第三方登录时遇到的一些坑。
我个人觉得目前看过来 sdk文档写的最好的还是 高德地图。
微信的sdk文档写的简直了。。。。。
接入sdk流程微信开放平台都有。自行查看。
-----------------------------------------
1.在微信开放平台先注册自己的app。通过之后会获得一个 appid 和 secret key
2.下载 官方提供的sdk 。
3.接入方法自行参考官网的说明。
4.重点【敲黑板】
【1】在自己的app当中注册 你申请的appid
在UnityAppController.h当中 引入 WXApi.h
在UnityAppController.mm 当中找到 didFinishLaunchingWithOptions 并注册自己的app id
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{
[WXApi registerApp:@"你申请的app id"];
return YES;
}
【2】这册一下微信的回调函数
在UnityAppController.mm当中找到
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
原先的 handleOpenURL 已经不推荐使用了。
其实没有其他胖友写的那么麻烦。后来我自己看了下。可能是和ios10的有关系。里面的api改动挺大。
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
{
*********************
//如果你想要在自己的ViewController接收回调 需要初始化一个你需要做事情的那个view 给微信的回调代理
//这里 iOSToUnityView是我自己定义的一个登录界面的viewcontroller;
iOSToUnityView*c = [[iOSToUnityView alloc]init];
return [WXApi handleOpenURL:url delegate:c];
}
【3】在你需要做事情的view里面做相应的事情
这里的 view = iOSToUnityView (具体你们的的view的命名 自己相对应的改动一下)
IOSToUnityView.h 引入 WXApi.h
注意:如果不是在头文件引入 WXApi.h 和 申明 回调WXApiDelegate。上一步的 “return [WXApi handleOpenURL:url delegate:c];”会报错
并申明 遵守微信回调
#import "WXApi.h"
@interface iOSToUnityView :UIViewController<WXApiDelegate>
在 IOSToUnityView.m 里写入接受回调的函数
- (void)onResp:(BaseResp *)resp {
if([resp isKindOfClass:[SendAuthResp class]])
{
SendAuthResp*se = (SendAuthResp*)resp;
if(se.errCode==0 &&[se.state isEqualToString:@"这里自己定义。要跟发出去时候的state一样
222d5"]){
//解析你收到的code;
[self getWechatOpenID:se.code];
NSlog(@" get msg");
}
}
}
//以上就是做微信登录要准备的工作。
【4】向微信发送登录请求
-(void)wechatLogin
{
if([WXApi isWXAppInstalled])
{
SendAuthReq*req =[[SendAuthReq alloc]init];
req.scope = @"snsapi_userinfo";//获取登录权限就是填这个
req.state = @"上面指的state就是这个";
req.openID = @"你申请的app id";
[WXApi sendReq:req];//一键发送请求
}
}
以上先初步完成获取权限。
后续再补一篇 解析回调回来的消息。
进一步获取详细信息