@@ -26,8 +26,7 @@ export class FluwxShareHandler {
2626 result.notImplemented();
2727 break;
2828 case "shareVideo":
29- // TODO
30- result.notImplemented();
29+ this.shareVideo(call, result);
3130 break;
3231 case "shareWebPage":
3332 this.shareWebPage(call, result);
@@ -50,6 +49,7 @@ export class FluwxShareHandler {
5049 mediaMsg.mediaObject = textObj;
5150
5251 const req = new wxopensdk.SendMessageToWXReq();
52+ this.setCommonArgs(call, req, mediaMsg);
5353 req.message = mediaMsg;
5454
5555 const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
@@ -78,6 +78,7 @@ export class FluwxShareHandler {
7878 mediaMsg.mediaObject = imageObj;
7979
8080 const req = new wxopensdk.SendMessageToWXReq();
81+ this.setCommonArgs(call, req, mediaMsg);
8182 req.message = mediaMsg;
8283
8384 const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
@@ -99,7 +100,7 @@ export class FluwxShareHandler {
99100 }
100101
101102 const req = new wxopensdk.SendMessageToWXReq()
102- req.scene = wxopensdk.SendMessageToWXReq.WXSceneSession
103+ this.setCommonArgs(call, req, mediaMessage)
103104 req.message = mediaMessage
104105
105106 const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
@@ -124,11 +125,60 @@ export class FluwxShareHandler {
124125 }
125126
126127 const req = new wxopensdk.SendMessageToWXReq()
127- req.scene = wxopensdk.SendMessageToWXReq.WXSceneSession
128+ this.setCommonArgs(call, req, mediaMessage)
128129 req.message = mediaMessage
129130
130131 const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
131132
132133 result.success(done)
133134 }
135+
136+ async shareVideo(call: MethodCall, result: MethodResult) {
137+ const videoObject = new wxopensdk.WXVideoObject()
138+ const videoUrl: string | undefined = call.argument("videoUrl");
139+ const videoLowBandUrl: string | undefined = call.argument("videoLowBandUrl");
140+
141+ if (videoUrl) {
142+ videoObject.videoUrl = videoUrl;
143+ } else {
144+ videoObject.videoLowBandUrl = videoLowBandUrl;
145+ }
146+
147+ const mediaMessage = new wxopensdk.WXMediaMessage()
148+ mediaMessage.mediaObject = videoObject
149+ mediaMessage.title = call.argument("title") || ""
150+ mediaMessage.description = call.argument("description") || ""
151+
152+ const req = new wxopensdk.SendMessageToWXReq()
153+ this.setCommonArgs(call, req, mediaMessage)
154+ req.message = mediaMessage
155+ const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
156+ result.success(done)
157+ }
158+
159+ setCommonArgs(call: MethodCall, req: wxopensdk.SendMessageToWXReq, msg: wxopensdk.WXMediaMessage) {
160+ const thumbData: Uint8Array | undefined = call.argument("thumbData");
161+ const messageAction: string | undefined = call.argument("messageAction");
162+
163+ if (thumbData) {
164+ msg.thumbData = thumbData;
165+ }
166+
167+ if (messageAction) {
168+ msg.messageAction = messageAction;
169+ }
170+
171+ const sceneIndex: number = call.argument("scene")
172+ switch (sceneIndex) {
173+ case 0:
174+ req.scene = wxopensdk.SendMessageToWXReq.WXSceneSession
175+ break
176+ case 1:
177+ req.scene = wxopensdk.SendMessageToWXReq.WXSceneTimeline
178+ break
179+ default:
180+ req.scene = wxopensdk.SendMessageToWXReq.WXSceneSession
181+ break
182+ }
183+ }
134184}
0 commit comments