cocos creator 实现微信登入

2025-12-01 02:47:10

1、1.先说下实现微信登入的思路,我按照写demo的思路说下。

第一步,用 cocos creator创建一个场景,里面添加微信登入按钮,给按钮绑定事件,函数里面就一句代码

jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity","weChatLogin","()V");

然后保存场景,构建,编译。

如果不知道怎么打包的话可以去官方文档查看。

2、用android studio 打开编译后的文件 也就是jsb-link,在这个地方,红色圈内的文件 在你用android studio导入的时候会变成其他的图标的 

如果不知道怎么用AS导入项目的话 上网查下吧

cocos creator 实现微信登入

3、导入之后会是这样的界面

cocos creator 实现微信登入

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

cocos creator 实现微信登入

cocos creator 实现微信登入

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

cocos creator 实现微信登入

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

cocos creator 实现微信登入

cocos creator 实现微信登入

cocos creator 实现微信登入

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

<uses-permission android:name="android.permission.RESTART_PACKAGES" />

    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />

    <uses-permission android:name="android.permission.GET_TASKS" />

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>

    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>

cocos creator 实现微信登入

2、继续配置清单 1,2,3,4的代码添加到清单里

3中的mon appid 和 mobappsecret 是要自己去shareSDK官方注册申请的

大家申请后改成自己的就行了 

1   --------------------------

android:name="com.mob.MobApplication"

2 ---------------------

<activity

            android:name="com.mob.tools.MobUIShell"

            android:theme="@android:style/Theme.Translucent.NoTitleBar"

            android:configChanges="keyboardHidden|orientation|screenSize"

            android:windowSoftInputMode="stateHidden|adjustResize">

        </activity>

3-----------------------------

//你申请的mob appid 和 mobappsecret

        <meta-data android:name="Mob-AppKey" android:value=" 2a992b4602843"/>

        <meta-data android:name="Mob-AppSecret" android:value="e083b62ace8617539724d02b75214a1f"/>

4-----------

//微信回调的配置

        <activity

            android:name="cn.sharesdk.demo.wxapi.WXEntryActivity"

            android:theme ="@android:style/Theme.Translucent.NoTitleBar"

            android:configChanges="keyboard|orientation|screenSize"

            android:exported="true"

            android:screenOrientation="portrait"/>

cocos creator 实现微信登入

3、5.在shareSDK.xml里修改微信的appid 和appsecret

<Wechat

        Id="4"

        SortId="4"

AppId="wxc43c2c004120810f"

AppSecret="96306e148dc901d44fedb897566f7a6d"

UserName="gh_b0c6a9ca668a"

Path="pages/index/index?id=mob"

        BypassApproval="true"//这个设置为true那么会绕过微信审核

WithShareTicket = "true"

MiniprogramType = "2"

        Enable="true" />

改后如图

cocos creator 实现微信登入

1、6.在AppActivity里添加代码 如图 

cocos creator 实现微信登入

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<String, Object> 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);//要数据不要功能 即 不需要用户注册}

cocos creator 实现微信登入

3、由于微信登入要打包 需要 签名 我用的是shareSDK官方的DEMO里的

//appId "wx4868b35061f87885"

// appSecret "64020361b8ec4c99936c0e3999a9f249"

//包名 cn.sharesdk.demo

//mon appid 和 mobappsecret 要去shareSDK官方申请 

// 大家参考看shareSDK微信分享的步骤  具体不明白的 可以问他们家客服 

cocos creator 实现微信登入

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢