shareSDK如何只分享图片
发布时间:2020-12-14 17:24:46 所属栏目:百科 来源:网络整理
导读:本文主要是针对cocos creator项目接入shareSDK后的 截图 分享问题 遇到的问题 Android只能分享sdcard下的图片 IOS图片必须要在Xcode左边目录里面,也就是必须在包里面 我现在想要分享一个截图,截图是在游戏里面通过一些方法自己生成的,Android中生成的图片
本文主要是针对cocos creator项目接入shareSDK后的截图分享问题 遇到的问题
解决方法
Tools.screenShoot = function (func) {
if (!cc.sys.isNative) return;
if (CC_JSB) {
var dirpath = jsb.fileUtils.getWritablePath() + 'ScreenShoot/';
if (!jsb.fileUtils.isDirectoryExist(dirpath)) {
jsb.fileUtils.createDirectory(dirpath);
}
var name = 'ScreenShoot-' + (new Date()).valueOf() + '.png';
var filepath = dirpath + name;
var size = cc.visibleRect;
var rt = cc.RenderTexture.create(size.width,size.height);
cc.director.getScene()._sgNode.addChild(rt);
rt.setVisible(false);
rt.begin();
cc.director.getScene()._sgNode.visit();
rt.end();
rt.saveToFile('ScreenShoot/' + name,cc.ImageFormat.PNG,true,function () {
cc.log('save succ');
rt.removeFromParent(true);
if (func) {
func(filepath);
}
});
}
};
这样得到一个屏幕截图,存储目录在可写路径里。最后返回的filepath这个值就是生成的截图的路径,我们使用js调用java的方法,将filepath传到java层,java拿到图片路径后,直接进行拷贝,代码如下: public static void copyFile(String oldPath,String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { //文件存在时
InputStream inStream = new FileInputStream(oldPath); //读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //字节数 文件大小
fs.write(buffer,0,byteread);
}
inStream.close();
}
}
catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
}
这个是静态方法,在js层调用java或者直接在java层调用,把图片复制到sdcard目录下,也可以放到别的目录 copyFile(filepath,"/sdcard/shareImg.png");
这样图片就在sdcard目录下了,可以使用shareSDK的相关方法进行分享。
UIImage * image = [[UIImage alloc] initWithContentsOfFile:imgUrl];
[shareParams SSDKSetupShareParamsByText:content
images:@[image]
url:[NSURL URLWithString:webUrl]
title:title
type:SSDKContentTypeImage];
imgUrl还是在js层获取到的图片路径filepath,这样就可以分享ios截图了。 如果有什么不懂的或者其他需求,可以在下方留言。(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |