Cocos项目中接入微信SDK

本文档详细介绍了如何在Cocos项目中接入微信SDK,包括微信开放平台的审核步骤和本地代码实现。主要涉及登录功能,通过监听触摸事件调用登录接口,并根据设备平台(Android或iOS)调用相应JniFun或IosHelper方法进行登录请求。同时,文章还涵盖了在Cocos中实现微信分享图片、文本和网页的方法。
摘要由CSDN通过智能技术生成

1.做好微信开放平台的审核工作

第一步:创建自己的微信开放平台账号并且提交自己的应用等待审核

审核通过之后就会如上图所示,审核已通过。一般应用审核通过之后只会有微信分享和收藏的功能:


某些接口是要收费的,具体要看自己的需求了,再提交应用的时候有很重要的两点,第一就是包名,安卓程序唯一标识就是包名,也是安装在手机上的唯一标识,这样系统才会识别出来这是两种不同的应用。还有一个就是应用签名:把apk文件装在手机上用微信开放平台的签名检测工具,输入自己的包名就可以得出应用签名了,然后把这个签名提交到微信开放平台上。(这里有一点需要特别注意,到后面出现无法登陆微信的情况很有可能是本地签名和微信开放平台的签名不一致所导致的,导出自己的apk时,要注意需要用keystore文件来对apk进行签名,这样带有keystore文件的apk以后就可以用这个keystore来签名了,尽量不要用debug.keystore。在以后微信开放平台上面的应用签名也可以修改)

在eclipse里面打开这个窗口进行keystore的导入(首先要自己创建一个keystore文件):



选择keystore文件之后点击apply,然后ok就可以了。


2.编写本地代码

由于我的项目是Cocos项目,要想调用Java层的微信SDK接口必须在本地编写逻辑代码,然后借助Jni来调用Java层的代码:
[cpp]  view plain  copy
  1. self.Button_login:addTouchEventListener(function ( sender,eventType )  
  2.     if eventType == ccui.TouchEventType.ended then   
  3.         print('==================登录 LoginScene:btnEvent()')  
  4.         self:lodingAnimation()  
  5.         game.anysdk:login_native()  
  6.     end  
  7. end)  

然后走到anysdk:login_native里面(也可以直接走到Jni里面)

[cpp]  view plain  copy
  1. function AnySdk:login_native()  
  2.     local function LoginServer()  
  3.         local function callBack()  
  4.             MissionManager.getMission('login_mission','main_mission'):sendData(MDM_GR_LOGON,SUB_GP_LOGON_ACCOUNTS)  
  5.         end   
  6.         MissionManager.connect(LOGIN_SERVER_NAME,LOGIN_SERVER_IP,LOGIN_SERVER_PORT,callBack)  
  7.     end  
  8.   
  9.     if device.platform == "android" or device.platform == "ios" then  
  10.         local access_token  = cc.UserDefault:getInstance():getStringForKey("access_token""")  
  11.         local openid        = cc.UserDefault:getInstance():getStringForKey("openid""")  
  12.         if access_token ~= "" and openid ~= "" then   
  13.             self:getWeixinInfo(access_token,openid,LoginServer)  
  14.         else  
  15.             JniFun:create():longinWX(APP_ID,AppSecret)  
  16.         end  
  17.     else  
  18.         --self:getWeixinInfo("""", LoginServer)  
  19.         local function callBack()  
  20.             MissionManager.getMission('login_mission','main_mission'):sendData(MDM_GR_LOGON,SUB_GP_REGISTER_ACCOUNTS)  
  21.         end   
  22.         MissionManager.connect(LOGIN_SERVER_NAME,LOGIN_SERVER_IP,LOGIN_SERVER_PORT,callBack)  
  23.     end  
  24. end  

然后进入到JniFun:loginWX里面:

[cpp]  view plain  copy
  1. #include "JniFun.h"  
  2. #include "cocos2d.h"  
  3.   
  4. #include "CCLuaEngine.h"  
  5.   
  6. #if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID  
  7. #include <Jni.h>  
  8. #include "platform/android/jni/JniHelper.h"  
  9. #include "jubaosdk/ShellApiJni.h"  
  10. #endif  
  11. #if CC_TARGET_PLATFORM == CC_PLATFORM_IOS  
  12. #include "IosHelper.h"  
  13. #endif  
  14.   
  15. #define JAVA_CLASSNAME  "com/wx/Native"  
  16. using namespace cocos2d;  
[cpp]  view plain  copy
  1. void JniFun::longinWX(const char* APP_ID,const char* AppSecret)  
  2.     {  
  3. #if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID  
  4.         JniMethodInfo minfo;  
  5.         bool isHave = JniHelper::getStaticMethodInfo(minfo,JAVA_CLASSNAME,"LoginWX","(Ljava/lang/String;Ljava/lang/String;)V");  
  6.         if (isHave)  
  7.         {  
  8.             jstring jAPP_ID = minfo.env->NewStringUTF(APP_ID);                                          
  9.             jstring jAppSecret = minfo.env->NewStringUTF(AppSecret);  
  10.             minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID,jAPP_ID,jAppSecret);  
  11.   
  12.             minfo.env->DeleteLocalRef(jAPP_ID);  
  13.             minfo.env->DeleteLocalRef(jAppSecret);  
  14.             minfo.env->DeleteLocalRef(minfo.classID);   
  15.             cocos2d::log("JniFun call LoginWX over!");  
  16.         }  
  17.         else  
  18.         {  
  19.             //NoticeMsg::Instance().ShowLogon(false);  
  20.             cocos2d::log("JniFun call LoginWX error!");  
  21.         }  
  22. #endif  
  23. #if CC_TARGET_PLATFORM == CC_PLATFORM_IOS  
  24.         cocos2d::log("IosHelper::sendAuthRequest!");  
  25.         IosHelper::sendAuthRequest();  
  26. #endif  
  27.     }  

在JniFun里面就用到了cocos封装好的JniHelper类,通过上面的代码才会真正调用到Java里面的微信API方法

Cocos Creator是一款流行的游戏开发引擎,它提供了方便的工具和功能,可以帮助开发者在多个平台上创建游戏,包括微信小游戏平台。 接入微信小游戏的步骤如下: 1. 准备工作: - 确保你已经安装并配置好了Cocos Creator开发环境。 - 在微信公众平台上注册一个小程序账号,并获取到小程序的AppID。 2. 创建项目: - 打开Cocos Creator,选择新建项目,并选择微信小游戏项目模板。 - 配置项目信息,包括项目名称、路径等。 3. 项目设置: - 在项目设置,选择微信小游戏平台,并填写小程序的AppID。 - 根据需要配置其他相关设置,如屏幕适配、引擎版本等。 4. 开发游戏: - 使用Cocos Creator提供的编辑器和工具进行游戏开发。 - 可以使用JavaScript或TypeScript编写代码,创建场景、精灵、动画等。 5. 调试与预览: - 在Cocos Creator,可以选择微信小游戏平台进行调试和预览。 - 在微信开发者工具,导入Cocos Creator生成的小游戏项目,并进行调试、预览和测试。 6. 发布与上线: - 在Cocos Creator,选择发布小游戏,并按照提示进行配置和打包。 - 将生成的小游戏包上传至微信开放平台,并进行审核和发布。 以上是接入微信小游戏的基本步骤,具体的细节和操作步骤可以参考Cocos Creator的官方文档和微信小游戏的开发文档,以获得更详细的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值