提交 4a09837b authored 作者: mafanwei's avatar mafanwei

Fix Thumbnail

上级 39dd944f
......@@ -15,11 +15,13 @@
*/
package com.jarvan.fluwx.handler
import android.util.Log
import android.graphics.BitmapFactory
import com.jarvan.fluwx.constant.CallResult
import com.jarvan.fluwx.constant.WeChatPluginMethods
import com.jarvan.fluwx.constant.WechatPluginKeys
import com.jarvan.fluwx.utils.ShareImageUtil
import com.jarvan.fluwx.utils.ThumbnailCompressUtil
import com.jarvan.fluwx.utils.Util
import com.jarvan.fluwx.utils.WeChatThumbnailUtil
import com.tencent.mm.opensdk.modelmsg.*
import io.flutter.plugin.common.MethodCall
......@@ -164,13 +166,25 @@ internal class FluwxShareHandler {
}.await()
}
private suspend fun getThumbnailByteArray(imageData: ByteArray): ByteArray {
return GlobalScope.async(Dispatchers.Default, CoroutineStart.DEFAULT) {
val bitmap = BitmapFactory.decodeByteArray(imageData,0,imageData.size)
val bmp = ThumbnailCompressUtil.createScaledBitmapWithRatio(bitmap,WeChatThumbnailUtil.SHARE_IMAGE_THUMB_LENGTH,false)
if (bmp == null) {
byteArrayOf()
} else {
Util.bmpToByteArray(bmp, true)
}
}.await()
}
private fun shareImage(call: MethodCall, result: MethodChannel.Result) {
val imagePath = call.argument<String>(WechatPluginKeys.IMAGE)
val imageData: ByteArray? = call.argument(WechatPluginKeys.IMAGE_DATA)
GlobalScope.launch(Dispatchers.Main, CoroutineStart.DEFAULT) {
val byteArray: ByteArray? = if (imagePath.isNullOrBlank()) {
call.argument(WechatPluginKeys.IMAGE_DATA) ?: byteArrayOf()
imageData ?: byteArrayOf()
} else {
getImageByteArrayCommon(registrar, imagePath)
}
......@@ -208,11 +222,15 @@ internal class FluwxShareHandler {
var thumbnail: String? = call.argument(WechatPluginKeys.THUMBNAIL)
if (thumbnail.isNullOrBlank()) {
thumbnail = imagePath
val thumbnailData = if (thumbnail.isNullOrBlank() && imageData != null) {
getThumbnailByteArray(imageData)
} else {
if (thumbnail.isNullOrBlank()) {
thumbnail = imagePath
}
getThumbnailByteArrayCommon(registrar, thumbnail!!)
}
val thumbnailData = getThumbnailByteArrayCommon(registrar, thumbnail!!)
// val thumbnailData = Util.bmpToByteArray(bitmap,true)
handleShareImage(imgObj, call, thumbnailData, result)
......
......@@ -84,7 +84,9 @@ public class WeChatThumbnailUtil {
public static byte[] thumbnailForCommon(String thumbnail, PluginRegistry.Registrar registrar) {
File file;
if (thumbnail.startsWith(WeChatPluginImageSchema.SCHEMA_ASSETS)) {
if(thumbnail == null || thumbnail.isEmpty()) {
return null;
} else if (thumbnail.startsWith(WeChatPluginImageSchema.SCHEMA_ASSETS)) {
file = getAssetFile(thumbnail, registrar);
} else if (thumbnail.startsWith(WeChatPluginImageSchema.SCHEMA_FILE)) {
String pathWithoutUri = thumbnail.substring(WeChatPluginImageSchema.SCHEMA_FILE.length());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论