Unity_ios_微信登录

最近在写第三方登录时遇到的一些坑。

我个人觉得目前看过来 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];//一键发送请求

}

}

以上先初步完成获取权限。

后续再补一篇 解析回调回来的消息。

进一步获取详细信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容