Cococs Creator的微信SDK的接入方法其实和cocos2d-x的lua、cpp接入方式一样,Cococs Creator调用安卓的java步骤要更简单,下面我们开始进入ccc接入微信sdk登录的正确方式。登录当中的获取相关的数据信息的流程,微信开发平台说的很清楚了,我们这个笔记只会把接入中的重点突出说明,如果你接入sdk中有其他问题,可以下方留言。
一、注意事项
1.要测试微信SDK的登录,发布的时候不能发Debug版本,不然是拉取不了code和微信客户端也打不开的,请发布release版本,密钥库也是审核的密钥库和签名,还有包名都要一致
2.WXEntryActivity所在目录必须是wxapi目录,wxapi目录必须是包名所在目录:我的包名是org.cocos.unkchess


3.AndroidManifest.xml 配置文件需要增加WXEntryActivity的启动,AndroidManifest.xml 在安卓目录下,修改如下:
android:exproted = "true"必须要

二、准备工作
1.需要在微信开发平台申请app的APP_ID, APP_SECRET这个需要自行先审核好
2.下载好微信sdk的“libammsdk.jar”放入到安卓工程的libs下面
3.编写WXEntryActivity,网上很多现成的可以拷贝修改
4.Cococs Creator JS调用Java:jsb.reflection.callStaticMethod(WXEntryActivity目录, Java的方法名字, 参数类型,参数内容)
如:
jsb.reflection.callStaticMethod("org/cocos/unkchess/wxapi/WXEntryActivity","RegisterAppID", "Ljava/lang/String;", app_id)
5.Cococs Creator Java调用 JS: Cocos2dxJavascriptJavaBridge.evalString()
如:Cocos2dxJavascriptJavaBridge.evalString("cc.Client.WechatPlatformManager.wechatOnRespone(\"" + s_code + "\")");;其中"cc.Client.WechatPlatformManager.wechatOnRespone()" 是我js端的一个函数,s_code是传递到js的参数内容。
注意:Cocos2dxJavascriptJavaBridge.evalString(“js代码”)必须在runOnGLThread 线程里面进行调用,否则微信登录返回app会黑屏,并且崩溃重启。
6.微信需要的3个URL地址格式:
var TOKEN_CODE_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code"
var USER_INFO_URL = "https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s"
var REFRESH_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=%s&grant_type=refresh_token&refresh_token=%s"
7.js中格式化字符串:cc.js.formatStr(字符, 格式的内容)如:var str = cc.js.formatStr("hello %s",world)
二、WXEntryActivity的编写(只截登录部分的代码)


WXEntryActivity 的初始在AppActivity里:

四 、WXEntryActivity 登录核心部分
1.发送auth请求:scope, state 见微信开发的发送格式

2.返回成功后调用了Cocos2dxJavascriptJavaBridge.evalString("cc.Client.WechatPlatformManager.wechatOnRespone(" + s_code + ")");将微信返回后的code返回的js层,然后进行下一步操作。
3.获取了code后后面的操作就非常简单了,其中的一个重点就是在js中请求url内容的方式如下:

通过XMLHttpRequest来操作就可以了。
4.获取到了code==>通过code获取refresh_token ==>然后获取用户信息。(见微信开发文档,这里开发者都应该很清楚了)
下一个篇章,是cocos creator发布接入ios的微信sdk的登录。
网友评论