166 lines
5.5 KiB
Kotlin
166 lines
5.5 KiB
Kotlin
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()
|
|
}
|
|
} |