多语言展示
当前在线:161今日阅读:138今日分享:34

cocos creator 实现微信登入

本教程适合有一定cocos creator 和 android studio 使用基础但未接触过sdk或者是想实现微信登入但没思路的小白。。。
工具/原料
1

android studio

2

cocos creator 1.9.3

3

第三方工具shareSDK

方法/步骤
1

1.先说下实现微信登入的思路,我按照写demo的思路说下。第一步,用 cocos creator创建一个场景,里面添加微信登入按钮,给按钮绑定事件,函数里面就一句代码jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity","weChatLogin","()V");然后保存场景,构建,编译。如果不知道怎么打包的话可以去官方文档查看。

2

用android studio 打开编译后的文件 也就是jsb-link,在这个地方,红色圈内的文件 在你用android studio导入的时候会变成其他的图标的 如果不知道怎么用AS导入项目的话 上网查下吧

3

导入之后会是这样的界面

方法/步骤2
1

这时候你会发现你的界面里的东西没有我的多,这时候你要去shareSDK官网下载sdk,如图 红圈内是要注意你要做哪种的IOS还是安卓的,我的是安卓的,点击后会弹出各个平台的SDK 你要哪种就选上

2

下载后解压 找到QuickIntegrater.jar 双击得到sample文件夹

3

看到里面的Sample的文件夹了吗?点击进去,里面的文件要全部拖到之前打开的android studio 项目界面 如图有几个要点说明下 箭头1 是切换项目的显示状态 箭头2 是 直接将sample里的文件 拖过去 在app文件下就行了 然后要选中里面的jar包 右键 选 as libray 如图2 我这边是已经添加了 讲到里是在右键后的下面几行箭头3 直接将 sample里的文件 拖过去 你会发现有一个文件夹名字是一样的,那你就将sample里同名的文件夹里的东西拖到那里面 箭头4 不能直接将sample里的assets文件夹直接拖过去 要新建一个文件夹main将assets放入后 在将main文件夹托过去箭头5 点开sample里的src文件夹,将cn文件夹拖过去最后重新点击箭头1 切换回这样的界面 如图 3

方法/步骤3
1

接下来是配置清单了 如图 将下面的代码添加到清单里                   

2

继续配置清单 1,2,3,4的代码添加到清单里3中的mon appid 和 mobappsecret 是要自己去shareSDK官方注册申请的大家申请后改成自己的就行了 1   --------------------------android:name="com.mob.MobApplication"2 ---------------------        3-----------------------------//你申请的mob appid 和 mobappsecret                4-----------//微信回调的配置       

3

5.在shareSDK.xml里修改微信的appid 和appsecret改后如图

方法/步骤4
1

6.在AppActivity里添加代码 如图

2

继续添加 如图 不过要主要红色部分可以不用复制进去,那只是我要切换场景 你只有一个场景的话就不用复制了 复制后如果代码是红色的话 把鼠标到上面 alt +enter 可以导入相关的包 这样就不会报错了public static void weChatLogin(){    //判断是否存在授权凭条的客户端    if(!weChat.isClientValid())    {        //更新安卓端的UI界面必须要调用runOnUiTread()的方法        pAppActivity.runOnUiThread(new Runnable() {            @Override            public void run() {                Toast.makeText(pAppActivity,"微信客户端不存在,请先下载",Toast.LENGTH_SHORT).show();            }        });        return;    }    //判断是否已经存在授权状态    if(weChat.isAuthValid()){        //清理授权缓存        // weChat.removeAccount(true);        //微信用户已经授权 抛出提示        pAppActivity.runOnUiThread(new Runnable() {            @Override            public void run() {                Toast.makeText(pAppActivity,"用户已经授权过了",Toast.LENGTH_SHORT).show();            }        });        //切换场景        //java调用js端的代码        // 一定要在 GL 线程中执行        pAppActivity.runOnGLThread(new Runnable() {            @Override            public void run() {                Cocos2dxJavascriptJavaBridge.evalString("cc.director.loadScene('hall_scene');");            }        });        return;    }    //微信登入回调    weChat.setPlatformActionListener(new PlatformActionListener() {        @Override//登入成功        public void onComplete(Platform platform, int i, HashMap hashMap) {            //获得全部的授权信息            //weChatData = platform.getDb().exportData();            //登入成功后抛出用户名字            weChatData = platform.getDb().getUserName();            pAppActivity.runOnUiThread(new Runnable() {                @Override                public void run() {                    Toast.makeText(pAppActivity,"授权信息:"+weChatData,Toast.LENGTH_SHORT).show();                }            });            //切换场景            //java调用js端的代码            // 一定要在 GL 线程中执行            pAppActivity.runOnGLThread(new Runnable() {                @Override                public void run() {                    Cocos2dxJavascriptJavaBridge.evalString("cc.director.loadScene('hall_scene');");                }            });                   }        @Override//登入失败        public void onError(Platform platform, int i, Throwable throwable) {            Log.e("=====", "onError: ");        }        @Override//取消登入        public void onCancel(Platform platform, int i) {            Log.e("=====", "onCancel: ");        }    });    weChat.SSOSetting(false);//是否微信客户端授权,false 默认客户端授权    weChat.showUser(null);//要数据不要功能 即 不需要用户注册}

3

由于微信登入要打包 需要 签名 我用的是shareSDK官方的DEMO里的//appId "wx4868b35061f87885"// appSecret "64020361b8ec4c99936c0e3999a9f249"//包名 cn.sharesdk.demo//mon appid 和 mobappsecret 要去shareSDK官方申请 // 大家参考看shareSDK微信分享的步骤  具体不明白的 可以问他们家客服

注意事项
1

微信登入 测试的话要打包安装到手机上测试的

2

微信登入 签名和包名要和微信开发平台上注册的要一致 大家不舍得掏钱就用shareSDK他们家的 不过包名和签名要和他们家一致 具体可以问他们客服要

推荐信息