Skip to content

Commit 7d55a32

Browse files
增加鸿蒙分享网页和小程序,微信sdk升级1.0.6 (#681)
增加鸿蒙分享网页和小程序,微信sdk升级1.0.6 --------- Co-authored-by: luo <[email protected]>
1 parent bad9e51 commit 7d55a32

File tree

3 files changed

+76
-13
lines changed

3 files changed

+76
-13
lines changed

doc/SHARE_CN.md

+17
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,23 @@
44
```dart
55
fluwx.share(WeChatShareTextModel("source text", scene: WeChatScene.SESSION));
66
```
7+
8+
鸿蒙分享网页:
9+
```dart
10+
fluwx.share(WeChatShareWebPageModel("https://www.",title: "标题",description: "描述",thumbData: data));
11+
```
12+
13+
鸿蒙分享小程序:
14+
```dart
15+
fluwx.share(WeChatShareMiniProgramModel(
16+
thumbData: data ,//64kb内
17+
webPageUrl: 'https://www.',
18+
userName: 'gh_b6cxxxxxx',
19+
path: path,
20+
title: title,
21+
));
22+
```
23+
724
绝大部分分享可以分享到会话,朋友圈,收藏(小程序目前只能分享到会话)。默认分享到会话。
825

926
```dart

ohos/oh-package.json5

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
"license": "Apache-2.0",
88
"dependencies": {
99
"@ohos/flutter_ohos": "file:./har/flutter.har",
10-
"@tencent/wechat_open_sdk": "1.0.3"
10+
"@tencent/wechat_open_sdk": "1.0.6"
1111
}
1212
}

ohos/src/main/ets/components/plugin/handlers/FluwxShareHandler.ets

+58-12
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { Any, MethodCall, MethodResult } from "@ohos/flutter_ohos"
2-
import * as wechatSDK from "@tencent/wechat_open_sdk"
3-
import { WXAPiHandler } from "./WXAPiHandler"
42
import { buffer } from "@kit.ArkTS"
53
import { fileUri } from "@kit.CoreFileKit"
4+
import * as wxopensdk from '@tencent/wechat_open_sdk';
5+
import { WXAPiHandler } from "./WXAPiHandler"
66

77
export class FluwxShareHandler {
88
share(call: MethodCall, result: MethodResult) {
@@ -16,8 +16,7 @@ export class FluwxShareHandler {
1616
this.shareText(call, result);
1717
break;
1818
case "shareMiniProgram":
19-
// TODO
20-
result.notImplemented();
19+
this.shareMiniProgram(call, result);
2120
break;
2221
case "shareImage":
2322
this.shareImage(call, result);
@@ -31,8 +30,7 @@ export class FluwxShareHandler {
3130
result.notImplemented();
3231
break;
3332
case "shareWebPage":
34-
// TODO
35-
result.notImplemented();
33+
this.shareWebPage(call, result);
3634
break;
3735
case "shareFile":
3836
// TODO
@@ -45,13 +43,13 @@ export class FluwxShareHandler {
4543
}
4644

4745
async shareText(call: MethodCall, result: MethodResult) {
48-
const textObj = new wechatSDK.WXTextObject();
46+
const textObj = new wxopensdk.WXTextObject();
4947
textObj.text = call.argument("source");
5048

51-
const mediaMsg = new wechatSDK.WXMediaMessage();
49+
const mediaMsg = new wxopensdk.WXMediaMessage();
5250
mediaMsg.mediaObject = textObj;
5351

54-
const req = new wechatSDK.SendMessageToWXReq();
52+
const req = new wxopensdk.SendMessageToWXReq();
5553
req.message = mediaMsg;
5654

5755
const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
@@ -64,7 +62,7 @@ export class FluwxShareHandler {
6462
// const imageHash: string | null = call.argument("imgDataHash");
6563
const bytes: Uint8Array | null = map.get("uint8List");
6664

67-
const imageObj = new wechatSDK.WXImageObject();
65+
const imageObj = new wxopensdk.WXImageObject();
6866

6967
if (bytes) {
7068
const buff: buffer.Buffer = buffer.from(bytes.buffer);
@@ -76,13 +74,61 @@ export class FluwxShareHandler {
7674
}
7775
}
7876

79-
const mediaMsg = new wechatSDK.WXMediaMessage();
77+
const mediaMsg = new wxopensdk.WXMediaMessage();
8078
mediaMsg.mediaObject = imageObj;
8179

82-
const req = new wechatSDK.SendMessageToWXReq();
80+
const req = new wxopensdk.SendMessageToWXReq();
8381
req.message = mediaMsg;
8482

8583
const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
8684
result.success(done);
8785
}
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+
}
88134
}

0 commit comments

Comments
 (0)