首先开始呢,我必须得吐槽一下网上的教程以及微信开放平台官网,网上的教程主要是太老了代码虽然都能用但是不完整有的东西已经改了,官网就不用说了,文档垃圾,是很垃圾。参考作用几乎等于没有,唯一作用就是查看返回值以及一些参数有什么用。嗯对的。没话说。
现在开始教程:
第一步:
准备好你的APP_ID这个东西不解释了。如果不知道请先去微信开放平台 查看一下注册你的应用程序。然后登录功能是收费的,分享是免费的
下面是注册应用程序的步骤:
打开微信开放平台官网:
点击创建应用,按照提示输入好之后点击下一步。:
填写完了之后就提交审核,一般的话审核可能1-3天就好了
以安卓为例子,签名和包名必须要和你要接入的cocos项目的包名和签名一致,对于签名的获取请看下图:
打开 Android资源下载之后在右边下滑找到:
下载安装到手机上,我这里用的模拟器,然后把你们要接入的cocos项目也打包好安装的手机上之后打开之前安装的签名生成工具:
打开工具之后输入你的包名:
这个就是签名的获取
应用注册审核通过之后开始下一步
第二步:
将你的cocos项目导入到android studio2.3.3,其他环境参照相应的教程导入项目,但是推荐用android studio方便,导入方法如下:
项目导入之后配置一下微信SDK的环境只需要一句话就可以了,但是前提是你电脑能够联网下载微信SDK:
把这一句话加上就行了:'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
接下来就可以开始写代码了,首先是Java端的代码,代码比较简单,我也不是很了解Java所以我就不逐行解释了,基本上直接复制就可以使用了。
首先打开这个文件:
下面是java端的代码:
package org.cocos2dx.cpp;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.qt.NiuBuTing.R;
import com.qt.NiuBuTing.wxapi.WXEntryActivity;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
import com.tencent.mm.opensdk.modelmsg.WXWebpageObject;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import org.cocos2dx.lib.Cocos2dxActivity;
import java.io.ByteArrayOutputStream;
public class AppActivity extends Cocos2dxActivity {
public static final String TAG = "NiuBuTing_Weixin_SDK";
public static final String APP_ID = "这里填写你的Appid";
public static IWXAPI api;
private static AppActivity instance = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
instance = this;
// 注册到微信
regToWx();
}
//注册到微信
private void regToWx() {
//工厂模式创建微信api
api = WXAPIFactory.createWXAPI(this, APP_ID, false);
//注册程序
api.registerApp(APP_ID);
}
//启动微信
private static boolean LaunchWX() {
boolean ret = false;
if (!api.isWXAppInstalled())
{
//判断是否安装微信
Toast.makeText(instance, "没有安装微信,请先安装微信!", Toast.LENGTH_LONG).show();
return ret;
}
if (api.openWXApp())
{
//判断打开微信是否成功
Log.d(TAG, "微信打开成功!");
ret = true;
}
else
{
Log.d(TAG, "微信打开失败!");
ret = false;
}
return ret;
}
//将图片解析成一个二进制数组
private byte[] bmpToByteArrar(final Bitmap bitmap, final boolean isRecycle){
ByteArray