前言
上一篇提到了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();
}
}
后语
到此为止微信分享战绩已经完成,希望对你有所帮助。