cocos2dx接入微信分享!

第一次接这个东西,留下记录!

首先的首行先到微信开发者中心申请appid,然后再继续往下看。

不想要回调的直接跳过此步骤

1、在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity,并在manifest文件里面加上exported属性,设置为true。实现IWXAPIEventHandler接口,微信发送的请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法。
在WXEntryActivity中将接收到的intent及实现了IWXAPIEventHandler接口的对象传递给IWXAPI接口的handleIntent方法。当微信发送请求到你的应用,将通过IWXAPIEventHandler接口的onReq方法进行回调,类似的,应用请求微信的响应结果将通过onResp回调。
其中,必须要新建WXEntryActivity类,实现IWXAPIEventHandler接口,同时该文件必须在xxx.xxx.xxx.wxapi包下,回调才有作用 ICON大小也要注意,否则会出现拉不出微信界面的情况 

直接贴出WXEntryActivity代码

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
	 private IWXAPI api;  
	@Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        api = WXAPIFactory.createWXAPI(this,  
                "wx8888888888", false);  
        api.handleIntent(getIntent(), this);  
    } 
	
	@Override  
    public void onReq(BaseReq arg0) {  
    }  
  
    @Override  
    public void onResp(BaseResp resp) {  
        int result = 0;  
  
        switch (resp.errCode) {  
		case BaseResp.ErrCode.ERR_OK:
			result = R.string.errcode_success;
			break;
		case BaseResp.ErrCode.ERR_USER_CANCEL:
			result = R.string.errcode_cancel;
			break;
		case BaseResp.ErrCode.ERR_AUTH_DENIED:
			result = R.string.errcode_deny;
			break;
		default:
			result = R.string.errcode_unknown;
			break;
		}
		
		Toast.makeText(this, result, Toast.LENGTH_LONG).show();  
        // TODO 微信分享 成功之后调用接口  
        finish();  
    } 

}
2、在androidmanifase.xml中添加如下代码

  <activity  
           android:name=".wxapi.WXEntryActivity"  
           android:exported="true"  
           android:theme="@android:style/Theme.Translucent" >  
       </activity>  
3、在主activity中添加函数,上代码,ps(记得要把demo中的Util.java文件拷到你自己的工程中)

    public static void sendMsgToFriend(){ 
        try {

            Message message = handle.obtainMessage();
            message.what = 4;
            handle.sendMessage(message);
        } catch (Exception e) {
            e.printStackTrace();
            return;
        }
    }

	public static void sendMsgToTimeLine() {
		try {

			Message message = handle.obtainMessage();
			message.what = 5;
			handle.sendMessage(message);
		} catch (Exception e) {
			e.printStackTrace();
			return;
		}
	}
 
	private static String buildTransaction(final String type) {
		return (type == null) ? String.valueOf(System.currentTimeMillis())
				: type + System.currentTimeMillis();
	}

4、我是把实现过程放在主线中的

case 4:  
	WXWebpageObject webpage = new WXWebpageObject();
	webpage.webpageUrl = ShareURL;
	WXMediaMessage msg2 = new WXMediaMessage(webpage);
	msg2.title = shareTitle;
	msg2.description = shareTitle;
	Bitmap thumb = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon);
	msg2.thumbData = Util.bmpToByteArray(thumb, true);
	SendMessageToWX.Req req = new SendMessageToWX.Req();
	// req.transaction = buildTransaction("webpage");
	req.transaction = String.valueOf(System.currentTimeMillis());
	req.message = msg2;
	req.scene = SendMessageToWX.Req.WXSceneSession;
	api.sendReq(req);
    break;
case 5:
     if(api.getWXAppSupportAPI() >= 0x21020001)
        {               
            WXWebpageObject webpage2 = new WXWebpageObject();
            webpage2.webpageUrl = ShareURL;
            WXMediaMessage msg3 = new WXMediaMessage(webpage2);
            msg3.title = shareTitle;
            msg3.description = shareTitle;
			Bitmap thumb2 = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon);
            msg3.thumbData = Util.bmpToByteArray(thumb2, true);
            SendMessageToWX.Req req2 = new SendMessageToWX.Req();
            req2.transaction = buildTransaction("webpage");
            req2.message = msg3;
            req2.scene = SendMessageToWX.Req.WXSceneTimeline;
             api.sendReq(req2);
        }
    else{
            oast.makeText(context, "微信版本过低", Toast.LENGTH_SHORT).show();
        }
     break;

5、C++层
void HelloWorld::sendToFriend()
{
	JniMethodInfo t; 

	bool isHave = JniHelper::getStaticMethodInfo(t,PACKAGENAME,"sendMsgToFriend", "()V"); 

	if (!isHave) { 
		GXLOG("jni:sendMsgToFriend is null"); 
	}else{ 
		//调用此函数 
		t.env->CallStaticVoidMethod(t.classID, t.methodID); 
		t.env->DeleteLocalRef(t.classID);
	}

}

void HelloWorld::sendToTimeLine()
{
	JniMethodInfo t;

	bool isHave = JniHelper::getStaticMethodInfo(t, PACKAGENAME, "sendMsgToTimeLine", "()V");

	if (!isHave) {
		GXLOG("jni:sendMsgToTimeLine is null");
	}
	else{
		//调用此函数 
		t.env->CallStaticVoidMethod(t.classID, t.methodID);
		t.env->DeleteLocalRef(t.classID);
	}
}

6、在onCreate中要初始化一下,不要忘了

        private static IWXAPI api; 
        api = WXAPIFactory.createWXAPI(this, APP_ID, true); 
        api.registerApp(APP_ID); 


到此你应该就可以分享了。。。

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的官方文档和微信小游戏的开发文档,以获得更详细的指导。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值