CocosCreater游戏项目发布至ios平台接入微信登录功能

一:首先在CocosCreater工程编写点击微信登录按钮调用OC的逻辑
   if (cc.sys.OS_ANDROID == cc.sys.os) { // 安卓平台
   
    } else if (cc.sys.OS_IOS == cc.sys.os) { //ios平台
        //点击微信支付调用OC AppConTroller类的 showWeChatLogin方法,
        jsb.reflection.callStaticMethod("AppController", "showWeChatLogin");
    }
二:将CocosCreater游戏,构建发布,发布平台选择iOS即可
CocosCreater游戏项目发布至ios平台接入微信登录功能_第1张图片
屏幕快照 2018-07-13 上午11.48.08.png
三:打开build完成后的ios工程,默认在proj.ios_mac文件夹中
四:加入微信登录SDK,加入步骤可以参考微信开放平台的ios接入指南,我用的是手动集成

步骤1:将SDK文件中包含的 libWeChatSDK.a,WXApi.h,WXApiObject.h 三个文件添加到你所建的工程中、

步骤2: 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id(如下图所示)[图片上传中...(1751531466778_.pic_hd.jpg-2d05aa-1531466788605-0)]

CocosCreater游戏项目发布至ios平台接入微信登录功能_第2张图片
1741531466595_.pic.jpg

步骤3:在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin(如下图所示)。


CocosCreater游戏项目发布至ios平台接入微信登录功能_第3张图片
1751531466778_.pic_hd.jpg
五:在代码中使用开发工具包

[1] 要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。(如下图所示,在AppController 的 didFinishLaunchingWithOptions 函数中向微信注册id)。
CocosCreater游戏项目发布至ios平台接入微信登录功能_第4张图片
1.jpg

[2] 重写AppDelegate的handleOpenURL和openURL方法:


CocosCreater游戏项目发布至ios平台接入微信登录功能_第5张图片
2.png
六:现在我们按照微信登录开发指引https://mp.weixin.qq.com/s/kKKIsEVCu7Tw0t5mK_Wkiw来请求具体的数据

微信登录授权流程大致分为以下步骤:

1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;

2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;

3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

CocosCreater游戏项目发布至ios平台接入微信登录功能_第6张图片
image
第一步:请求CODE,我们需要点击微信登录按钮调用(根据CocosCreater工程里面编写了点击微信登录按钮调用OC的逻辑,即是调用AppController类里面的showWeChatLogin方法),我们这里在showWeChatLogin里面实现请求Code的代码,这边我的逻辑参考了微信的demo,放在WXApiManager里面处理!
CocosCreater游戏项目发布至ios平台接入微信登录功能_第7张图片
1.png
CocosCreater游戏项目发布至ios平台接入微信登录功能_第8张图片
2.png

微信客户端会被拉起,跳转至授权界面,用户在该界面点击允许或取消,SDK通过SendAuth的Resp返回code数据给调用方


CocosCreater游戏项目发布至ios平台接入微信登录功能_第9张图片
3.png
第二步:通过code获取access_token

获取第一步的code后,App要将code传回App的后台服务器,后台服务器请求以下链接获取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

参数:appid和secret填入在申请移动应用的时候开放平台分配的字段,可在应用详情中获得,code填写第一步获得的code,grant_type固定填写为authorization_code。
注意:access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天。

第三步通过access_token调用接口

获得access_token后,通过一下接口可以获得用户基本信息。

http请求方式: GET

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

拿到用户信息后,我们需要回调给CocosCreater 如图:


CocosCreater游戏项目发布至ios平台接入微信登录功能_第10张图片
屏幕快照 2018-08-03 上午11.08.45.png

CocosCreater 那边处理

CocosCreater游戏项目发布至ios平台接入微信登录功能_第11张图片
1991533266460_.pic_hd.jpg

你可能感兴趣的:(CocosCreater游戏项目发布至ios平台接入微信登录功能)