CocosCreator 硬核 微信小游戏分享战绩、截图到微信

前言

上一篇提到了APP如何分享战绩到微信,但每个引擎都有自己独有的一套渲染方式,所以这套方案不适用于微信小游戏的截图分享。本文就简单讲述一下微信小游戏如何分享战绩、截图给微信好友。

提示:

第一部分是 js客户端 截图代码,第二部分是 SDKInterfaces接口 代码。分享成功之后,微信内可以点击分享内容直接进入小游戏。

一、js客户端

下述代码使用到了 canvas ,如果你对其不太熟悉,可以先学习了解一下。
我们把这段代码封装在 share_image 函数中

share_image:function()
{
	// 获取缩放比例
	var scaleX = canvas.width/cc.winSize.width
	var scaleY = canvas.height/cc.winSize.height

 	// 转换坐标,  targetNode就是你截图的父节点,其范围要包含截图范围 
	var worldpos = targetNode.getParent().convertToWorldSpaceAR(targetNode.getPosition())

 	// 进行一些简单的属性设置
	var targetCanvasWidth = targetNode.width * scaleX
	var targetCanvasHeight = targetNode.height * scaleY
	var targetCanvasX = (worldpos.x-targetNode.width/2) * scaleX
	var targetCanvasY = (cc.winSize.height-targetNode.height/2-worldpos.y) * scaleY

	// 调用接口,并传递文件路径
	canvas.toTempFilePath({
    	x: targetCanvasX,
    	y: targetCanvasY,
    	width: targetCanvasWidth,
    	height: targetCanvasHeight,
    	destWidth: 500,
    	destHeight: 400,
    	success:function(res) {
    		//调用微信分享接口
        	wx['shareAppMessage'](res.tempFilePath)
    	}
	})
}

二、SDKInterfaces接口

记得导入所需的类名。

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import java.io.File;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
import com.tencent.mm.opensdk.modelmsg.WXWebpageObject;

public static IWXAPI mIWXAPI;

public static void share(String url,String title,String desc)
{
    try
    {
        WXWebpageObject webpage = new WXWebpageObject();
        webpage.webpageUrl = url;
        WXMediaMessage msg = new WXMediaMessage(webpage);

        Bitmap bmp = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.send_img);
        Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 150, 150, true);
        bmp.recycle();
        msg.thumbData = Util.bmpToByteArray(thumbBmp, true);

        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("webpage");
        req.message = msg;
        req.scene = SendMessageToWX.Req.WXSceneSession;
        mIWXAPI.sendReq(req);
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}
后语

到此为止微信分享战绩已经完成,希望对你有所帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值