提交 c9361349 authored 作者: lichdr's avatar lichdr

分享文件

上级 c60de433
......@@ -20,6 +20,7 @@ public class WeChatPluginMethods {
public static final String SHARE_VIDEO = "shareVideo";
public static final String SHARE_WEB_PAGE = "shareWebPage";
public static final String SHARE_MINI_PROGRAM = "shareMiniProgram";
public static final String SHARE_FILE = "shareFile";
public static final String LAUNCH_MINI_PROGRAM = "launchMiniProgram";
public static final String PAY = "payWithFluwx";
......
......@@ -70,6 +70,7 @@ internal class FluwxShareHandler {
WeChatPluginMethods.SHARE_MUSIC -> shareMusic(call, result)
WeChatPluginMethods.SHARE_VIDEO -> shareVideo(call, result)
WeChatPluginMethods.SHARE_WEB_PAGE -> shareWebPage(call, result)
WeChatPluginMethods.SHARE_FILE -> shareFile(call,result)
else -> {
result.notImplemented()
}
......@@ -343,6 +344,36 @@ internal class FluwxShareHandler {
}
}
private fun shareFile(call:MethodCall,result:MethodChannel.Result){
val file = WXFileObject()
val filePath:String? = call.argument("filePath")
file.filePath = filePath
val msg = WXMediaMessage()
msg.mediaObject = file
msg.title = call.argument("title")
msg.description = call.argument("description")
val thumbnail: String? = call.argument("thumbnail")
GlobalScope.launch(Dispatchers.Main, CoroutineStart.DEFAULT) {
if (thumbnail != null && thumbnail.isNotBlank()) {
msg.thumbData = getThumbnailByteArrayCommon(registrar, thumbnail)
}
val req = SendMessageToWX.Req()
setCommonArguments(call, req, msg)
req.message = msg
val done = WXAPiHandler.wxApi?.sendReq(req)
result.success(
mapOf(
WechatPluginKeys.PLATFORM to WechatPluginKeys.ANDROID,
WechatPluginKeys.RESULT to done
)
)
}
}
// private fun createWxImageObject(imagePath:String):WXImageObject?{
// var imgObj: WXImageObject? = null
// var imageFile:File? = null
......
......@@ -358,7 +358,8 @@ const Map<Type, String> _shareModelMethodMapper = {
WeChatShareMusicModel: "shareMusic",
WeChatShareVideoModel: "shareVideo",
WeChatShareWebPageModel: "shareWebPage",
WeChatShareMiniProgramModel: "shareMiniProgram"
WeChatShareMiniProgramModel: "shareMiniProgram",
WeChatShareFileModel:"shareFile",
};
const Map<int, AuthByQRCodeErrorCode> _authByQRCodeErrorCodes = {
......
......@@ -339,3 +339,45 @@ class WeChatShareWebPageModel extends WeChatShareModel {
};
}
}
class WeChatShareFileModel extends WeChatShareModel {
final String transaction;
final String filePath;
final String thumbnail;
final String title;
final String description;
WeChatShareFileModel({
String transaction,
this.filePath,
this.title: "",
this.description: "",
String thumbnail,
WeChatScene scene,
String messageExt,
String messageAction,
String mediaTagName,
}) : this.transaction = transaction ?? "text",
this.thumbnail = thumbnail ?? "",
assert(filePath != null),
super(
mediaTagName: mediaTagName,
messageAction: messageAction,
messageExt: messageExt,
scene: scene);
@override
Map toMap() {
return {
_transaction: transaction,
_scene: scene.toString(),
"filePath": filePath,
_thumbnail: thumbnail,
_title: title,
_description: description,
_mediaTagName: mediaTagName,
_messageAction: messageAction,
_messageExt: messageExt,
};
}
}
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论