package com.cheng.bole.manager import android.app.Activity import android.content.Context import android.content.Intent import android.text.TextUtils import androidx.core.content.FileProvider import androidx.fragment.app.FragmentActivity import com.cheng.bole.R import com.example.base.extensions.toast import com.umeng.socialize.ShareAction import com.umeng.socialize.UMShareListener import com.umeng.socialize.bean.SHARE_MEDIA import com.umeng.socialize.media.UMImage import com.umeng.socialize.media.UMVideo import com.umeng.socialize.media.UMWeb import java.io.File object ShareManager { /** * 分享媒体文件 */ fun shareFile(context: Context, file: File) { val uri = FileProvider.getUriForFile(context,"${context.packageName}.fileprovider", file) val intent = Intent(Intent.ACTION_SEND) intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) intent.putExtra(Intent.EXTRA_STREAM, uri) intent.setType(if (file.extension == "mp4") "video/mp4" else if (file.extension == "mp3") "audio/x-mpeg" else "image/jpeg") //分享文件类型 context.startActivity(Intent.createChooser(intent, "分享")) } /** * 分享 */ fun shareUrl( activity: FragmentActivity, shareMedia: SHARE_MEDIA, shareBean: com.cheng.bole.bean.WxShareEntity, clickFun: () -> Unit, ) { if (!TextUtils.isEmpty(shareBean.link)) { val web = UMWeb(shareBean.link) web.title = shareBean.title web.setThumb(UMImage(activity, R.mipmap.ic_launcher_icon)) web.description = shareBean.content ShareAction(activity).withMedia(web).setPlatform(shareMedia) .setCallback(object : UMShareListener { /** * 分享成功的回调 * @param platform 平台类型 */ override fun onResult(platform: SHARE_MEDIA) { clickFun.invoke() } /** * 分享取消的回调 * @param platform 平台类型 */ override fun onCancel(platform: SHARE_MEDIA) { toast("取消分享") } /** * 分享失败的回调 * @param platform 平台类型 * @param t 错误原因 */ override fun onError(platform: SHARE_MEDIA, t: Throwable) { toast("分享失败,请重试") } /** * 分享开始的回调 * @param platform 平台类型 */ override fun onStart(platform: SHARE_MEDIA) {} }).share() } } fun shareImageOnWeChat(activity: Activity, image: UMImage) { image.title = "" image.description = "" image.setThumb(image) ShareAction(activity).withMedia(image).withText("") .setPlatform(SHARE_MEDIA.WEIXIN) .setCallback(object : UMShareListener { /** * 分享成功的回调 * @param platform 平台类型 */ override fun onResult(platform: SHARE_MEDIA) { toast("分享成功") } /** * 分享取消的回调 * @param platform 平台类型 */ override fun onCancel(platform: SHARE_MEDIA) { toast("取消分享") } /** * 分享失败的回调 * @param platform 平台类型 * @param t 错误原因 */ override fun onError(platform: SHARE_MEDIA, t: Throwable) { toast("分享失败,请重试") } /** * 分享开始的回调 * @param platform 平台类型 */ override fun onStart(platform: SHARE_MEDIA) {} }).share() } fun shareFileOnWeChat(activity: Activity, file: File) { val video = UMVideo(file) ShareAction(activity).withMedia(video) .setPlatform(SHARE_MEDIA.WEIXIN) .setCallback(object : UMShareListener { /** * 分享成功的回调 * @param platform 平台类型 */ override fun onResult(platform: SHARE_MEDIA) { toast("分享成功") } /** * 分享取消的回调 * @param platform 平台类型 */ override fun onCancel(platform: SHARE_MEDIA) { toast("取消分享") } /** * 分享失败的回调 * @param platform 平台类型 * @param t 错误原因 */ override fun onError(platform: SHARE_MEDIA, t: Throwable) { toast("分享失败,请重试") } /** * 分享开始的回调 * @param platform 平台类型 */ override fun onStart(platform: SHARE_MEDIA) {} }).share() } }