想請問如何達到社群媒體分享的功能

大家好,
小弟目前要實作一個功能,就是螢幕截圖後分享到社群媒體:facebook,twitter。
我使用的版本為 Cocos creator 3.5.2
螢幕截圖的功能我已經完成。我目前是不太清楚怎麼分享到社群媒體,我有查到SDKBOX,不過它似乎已經不再維護了。所以我目前沒有頭緒要如何達到這個效果?所以想求助各位高手。謝謝。然後我要做的分享功能如附圖。不曉得 SDKHub 能不能達到我要的效果?。另外一問是截圖後的圖片要存在哪裡才能分享?

非常謝謝!

截圖 2022-07-13 上午9.56.19

sharesdk

好,非常謝謝你的建議,我會去找 sharesdk的資料來看看。

1赞

不好意思,也想請問一下,那SDKHUB呢? 它跟sharesdk 都能達到效果嗎?謝謝

1赞

这个我不清楚,没接入过。sharesdk以前接过。你应该看看官方的文档

1赞

好的,還是非常謝謝你。

1赞

fb 这些平台sdk有相应的分享接口吧!你应该去看看他们提供的sdk文档做相应的接入工作

1赞

好,我去找找,不過cocos 要怎麼傳資料給原生呢?謝謝

1赞

Java 原生反射机制 · Cocos Creator 文档的进阶主题里面有与android 和ios的交互方法啊,看看文档

2赞

好,謝謝。這部分我也去看看。

1赞

你展示的这个界面是iOS自带的分享功能。不需要接sdk

1赞

那請問要怎麼之援這個自帶的功能呢?應該要做某些設定吧?想請教這部分要怎麼做呢?謝謝

这繁体字是台湾同胞把。你说的这个分享都是原生分享。跟什么SDK没关系的。就在安卓跟IOS原生代码加个公共方法,然后 Java 原生反射机制 调用,截屏用插件CaptureNative(论坛可以搜到使用方法)。把path传进去

2赞

百度搜一下很多。我贴点代码。自己参考。安卓的

static public String shareImgPath = “”;
static public int REQUEST_CODE_SOME_FEATURES_PERMISSIONS = 5;
//一些简单的原生接口调用 --分先到微信 :分享图片
// @NeedsPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
public static void shareSDKImage(String imgPath){
Log.d(“shareSDKImage”, “imgPath=”+imgPath);
shareImgPath = imgPath;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int hasWritePermission = instance.getPackageManager().checkPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE, instance.getPackageName());
List permissions = new ArrayList<>();
if (hasWritePermission != PackageManager.PERMISSION_GRANTED) {
permissions.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (!permissions.isEmpty()) {
instance.requestPermissions(permissions.toArray(new String[permissions.size()]), REQUEST_CODE_SOME_FEATURES_PERMISSIONS);
}else {
doShareImage();
}
}else {
doShareImage();
}
}
private static void doShareImage(){
if (shareImgPath == null){
return;
}
Log.d(“doShareImage”, “shareImgPath=”+shareImgPath);
Bitmap bitmap = BitmapFactory.decodeFile(shareImgPath);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
ComponentName cop = new ComponentName(“com.tencent.mm”, “com.tencent.mm.ui.tools.ShareImgUI”);
intent.setComponent(cop);
Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(instance.getContentResolver(),bitmap,null,null));
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType(“image/*”);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
instance.startActivity(intent);
}

3赞

對,我是台灣的工程師。
喔喔,好的,非常謝謝你的建議和幫忙。我確實不是要做app內整合SDK分享功能的那種,我想達到的效果是從app切出去的那種,比較簡單版的,工程比較沒那麼複雜。

請問 CaptureNative是cocos 的plugin嗎?截圖的部分我是已經用官方的sample 有做到了,不過我還不清楚截下來的圖要存在哪邊才能分享,或者要傳 base64 encode。

1赞

这样的话,截图保存的路径试着改成手机相册的路径,然后引导用户通过相册内图片进行分享

1赞

恩恩,這確實也是一種方式,不過這樣感覺使用起來就沒有這麼順暢。
而且要存相簿路徑也需要多要求權限。

我很难跟你说明使用方法,最好搜一下论坛或者百度。谷歌,官方demo有录屏的功能,相关代码在CaptureNative.js文件。然后回返回录屏的截图抵制path,接下来就要写原生安卓跟IOS的分享代码。
原生分享不需要任何SDK,通过path获取截屏的图片数据。调原生分享。可以分享到手机内任何聊天软件。
这些网上很多,需要自己搜,研究。

2赞

恩恩,好的,非常謝謝你的建議,我會去好好研究一下。

1赞

額外分享這個給你
Line分享 - Creator 2.x - Cocos中文社区