最近在寫第三方登錄時(shí)遇到的一些坑沸移。
我個(gè)人覺得目前看過來 sdk文檔寫的最好的還是 高德地圖。
微信的sdk文檔寫的簡(jiǎn)直了侄榴。雹锣。。癞蚕。蕊爵。
接入sdk流程微信開放平臺(tái)都有。自行查看桦山。
-----------------------------------------
1.在微信開放平臺(tái)先注冊(cè)自己的app攒射。通過之后會(huì)獲得一個(gè) appid 和 secret key
2.下載 官方提供的sdk 。
3.接入方法自行參考官網(wǎng)的說明恒水。
4.重點(diǎn)【敲黑板】
【1】在自己的app當(dāng)中注冊(cè) 你申請(qǐng)的appid
在UnityAppController.h當(dāng)中 引入 WXApi.h
在UnityAppController.mm 當(dāng)中找到 didFinishLaunchingWithOptions 并注冊(cè)自己的app id
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{
[WXApi registerApp:@"你申請(qǐng)的app id"];
return YES;
}
【2】這冊(cè)一下微信的回調(diào)函數(shù)
在UnityAppController.mm當(dāng)中找到
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
原先的 handleOpenURL 已經(jīng)不推薦使用了会放。
其實(shí)沒有其他胖友寫的那么麻煩。后來我自己看了下寇窑⊙桓牛可能是和ios10的有關(guān)系箩张。里面的api改動(dòng)挺大甩骏。
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
{
*********************
//如果你想要在自己的ViewController接收回調(diào) 需要初始化一個(gè)你需要做事情的那個(gè)view 給微信的回調(diào)代理
//這里 iOSToUnityView是我自己定義的一個(gè)登錄界面的viewcontroller;
iOSToUnityView*c = [[iOSToUnityView alloc]init];
return [WXApi handleOpenURL:url delegate:c];
}
【3】在你需要做事情的view里面做相應(yīng)的事情
這里的 view = iOSToUnityView (具體你們的的view的命名 自己相對(duì)應(yīng)的改動(dòng)一下)
IOSToUnityView.h 引入 WXApi.h ?
注意:如果不是在頭文件引入 WXApi.h 和 申明 回調(diào)WXApiDelegate先慷。上一步的 “return [WXApi handleOpenURL:url delegate:c];”會(huì)報(bào)錯(cuò)
并申明 遵守微信回調(diào)
#import "WXApi.h"
@interface iOSToUnityView :UIViewController<WXApiDelegate>
在 IOSToUnityView.m 里寫入接受回調(diào)的函數(shù)
- (void)onResp:(BaseResp *)resp {
if([resp isKindOfClass:[SendAuthResp class]])
{
? ? SendAuthResp*se = (SendAuthResp*)resp;
? ?if(se.errCode==0 &&[se.state isEqualToString:@"這里自己定義饮笛。要跟發(fā)出去時(shí)候的state一樣
222d5"])? ? {
? ? //解析你收到的code;
? ? ? ?
[self getWechatOpenID:se.code];
? ? ? ?NSlog(@" get msg");
? ? ?}
? ?}
}
//以上就是做微信登錄要準(zhǔn)備的工作论熙。
【4】向微信發(fā)送登錄請(qǐng)求
-(void)wechatLogin
{
if([WXApi isWXAppInstalled])
{
SendAuthReq*req =[[SendAuthReq alloc]init];
req.scope = @"snsapi_userinfo";//獲取登錄權(quán)限就是填這個(gè)
req.state = @"上面指的state就是這個(gè)";
req.openID = @"你申請(qǐng)的app id";
[WXApi sendReq:req];//一鍵發(fā)送請(qǐng)求
}
}
以上先初步完成獲取權(quán)限福青。
后續(xù)再補(bǔ)一篇 解析回調(diào)回來的消息。
進(jìn)一步獲取詳細(xì)信息