1
1
import { Any, MethodCall, MethodResult } from "@ohos/flutter_ohos"
2
- import * as wechatSDK from "@tencent/wechat_open_sdk"
3
- import { WXAPiHandler } from "./WXAPiHandler"
4
2
import { buffer } from "@kit.ArkTS"
5
3
import { fileUri } from "@kit.CoreFileKit"
4
+ import * as wxopensdk from '@tencent/wechat_open_sdk';
5
+ import { WXAPiHandler } from "./WXAPiHandler"
6
6
7
7
export class FluwxShareHandler {
8
8
share(call: MethodCall, result: MethodResult) {
@@ -16,8 +16,7 @@ export class FluwxShareHandler {
16
16
this.shareText(call, result);
17
17
break;
18
18
case "shareMiniProgram":
19
- // TODO
20
- result.notImplemented();
19
+ this.shareMiniProgram(call, result);
21
20
break;
22
21
case "shareImage":
23
22
this.shareImage(call, result);
@@ -31,8 +30,7 @@ export class FluwxShareHandler {
31
30
result.notImplemented();
32
31
break;
33
32
case "shareWebPage":
34
- // TODO
35
- result.notImplemented();
33
+ this.shareWebPage(call, result);
36
34
break;
37
35
case "shareFile":
38
36
// TODO
@@ -45,13 +43,13 @@ export class FluwxShareHandler {
45
43
}
46
44
47
45
async shareText(call: MethodCall, result: MethodResult) {
48
- const textObj = new wechatSDK .WXTextObject();
46
+ const textObj = new wxopensdk .WXTextObject();
49
47
textObj.text = call.argument("source");
50
48
51
- const mediaMsg = new wechatSDK .WXMediaMessage();
49
+ const mediaMsg = new wxopensdk .WXMediaMessage();
52
50
mediaMsg.mediaObject = textObj;
53
51
54
- const req = new wechatSDK .SendMessageToWXReq();
52
+ const req = new wxopensdk .SendMessageToWXReq();
55
53
req.message = mediaMsg;
56
54
57
55
const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
@@ -64,7 +62,7 @@ export class FluwxShareHandler {
64
62
// const imageHash: string | null = call.argument("imgDataHash");
65
63
const bytes: Uint8Array | null = map.get("uint8List");
66
64
67
- const imageObj = new wechatSDK .WXImageObject();
65
+ const imageObj = new wxopensdk .WXImageObject();
68
66
69
67
if (bytes) {
70
68
const buff: buffer.Buffer = buffer.from(bytes.buffer);
@@ -76,13 +74,61 @@ export class FluwxShareHandler {
76
74
}
77
75
}
78
76
79
- const mediaMsg = new wechatSDK .WXMediaMessage();
77
+ const mediaMsg = new wxopensdk .WXMediaMessage();
80
78
mediaMsg.mediaObject = imageObj;
81
79
82
- const req = new wechatSDK .SendMessageToWXReq();
80
+ const req = new wxopensdk .SendMessageToWXReq();
83
81
req.message = mediaMsg;
84
82
85
83
const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
86
84
result.success(done);
87
85
}
86
+
87
+ async shareWebPage(call: MethodCall, result: MethodResult) {
88
+ const webpageObject = new wxopensdk.WXWebpageObject()
89
+ webpageObject.webpageUrl = call.argument("webPage")
90
+
91
+ const mediaMessage = new wxopensdk.WXMediaMessage()
92
+ mediaMessage.mediaObject = webpageObject
93
+ mediaMessage.title = call.argument("title")
94
+ mediaMessage.description = call.argument("description")
95
+
96
+ const thumbData: Uint8Array | null = call.argument("thumbData");
97
+ if (thumbData) {
98
+ mediaMessage.thumbData = thumbData;
99
+ }
100
+
101
+ const req = new wxopensdk.SendMessageToWXReq()
102
+ req.scene = wxopensdk.SendMessageToWXReq.WXSceneSession
103
+ req.message = mediaMessage
104
+
105
+ const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
106
+
107
+ result.success(done)
108
+ }
109
+
110
+ async shareMiniProgram(call: MethodCall, result: MethodResult) {
111
+ const miniProgramObject = new wxopensdk.WXMiniProgramObject()
112
+ miniProgramObject.userName = call.argument("userName")
113
+ miniProgramObject.path = call.argument("path")
114
+ miniProgramObject.miniprogramType = wxopensdk.WXMiniProgramType.RELEASE
115
+
116
+ const mediaMessage = new wxopensdk.WXMediaMessage()
117
+ mediaMessage.mediaObject = miniProgramObject
118
+ mediaMessage.title = call.argument("title")
119
+ mediaMessage.description = call.argument("description")
120
+
121
+ const thumbData: Uint8Array | null = call.argument("thumbData");
122
+ if (thumbData) {
123
+ mediaMessage.thumbData = thumbData;
124
+ }
125
+
126
+ const req = new wxopensdk.SendMessageToWXReq()
127
+ req.scene = wxopensdk.SendMessageToWXReq.WXSceneSession
128
+ req.message = mediaMessage
129
+
130
+ const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
131
+
132
+ result.success(done)
133
+ }
88
134
}
0 commit comments