Unverified 提交 d7f847f4 authored 作者: Sherman Chu's avatar Sherman Chu 提交者: GitHub

migrate to "@tencent/wechat_open_sdk" v1.0.3 and add impl for plugin.launchMiniProgram (#671)

上级 157e9964
...@@ -7,6 +7,6 @@ ...@@ -7,6 +7,6 @@
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@ohos/flutter_ohos": "file:./har/flutter.har", "@ohos/flutter_ohos": "file:./har/flutter.har",
"@tencent/wechat_open_sdk": "^1.0.0" "@tencent/wechat_open_sdk": "1.0.3"
} }
} }
...@@ -93,8 +93,7 @@ export default class FluwxPlugin implements FlutterPlugin, MethodCallHandler, Ab ...@@ -93,8 +93,7 @@ export default class FluwxPlugin implements FlutterPlugin, MethodCallHandler, Ab
result.notImplemented(); result.notImplemented();
break; break;
case "launchMiniProgram": case "launchMiniProgram":
// TODO this.launchMiniProgram(call, result);
result.notImplemented();
break; break;
case "subscribeMsg": case "subscribeMsg":
// TODO // TODO
...@@ -174,6 +173,11 @@ export default class FluwxPlugin implements FlutterPlugin, MethodCallHandler, Ab ...@@ -174,6 +173,11 @@ export default class FluwxPlugin implements FlutterPlugin, MethodCallHandler, Ab
this.onPayResp(resp); this.onPayResp(resp);
return; return;
} }
if (resp instanceof wechatSDK.LaunchMiniProgramResp) {
this.onLaunchMiniProgramResp(resp);
return;
}
} }
// 微信回调 end // 微信回调 end
...@@ -215,6 +219,20 @@ export default class FluwxPlugin implements FlutterPlugin, MethodCallHandler, Ab ...@@ -215,6 +219,20 @@ export default class FluwxPlugin implements FlutterPlugin, MethodCallHandler, Ab
this.channel?.invokeMethod("onPayResponse", _result); this.channel?.invokeMethod("onPayResponse", _result);
} }
onLaunchMiniProgramResp(resp: wechatSDK.LaunchMiniProgramResp) {
const _result: Map<string, ESObject> = new Map();
_result.set(KEY_ERR_CODE, resp.errCode);
_result.set(KEY_ERR_STR, resp.errStr);
_result.set(KEY_TYPE, resp.type);
_result.set(KEY_OPEN_ID, resp.openId);
if (resp.extMsg) {
_result.set("extMsg", resp.extMsg);
}
this.channel?.invokeMethod("onLaunchMiniProgramResponse", _result);
}
async handlePay(call: MethodCall, result: MethodResult) { async handlePay(call: MethodCall, result: MethodResult) {
if (!WXAPiHandler.wxApi) { if (!WXAPiHandler.wxApi) {
result.error("Unassigned WxApi", "please config wxapi first", null); result.error("Unassigned WxApi", "please config wxapi first", null);
...@@ -240,4 +258,16 @@ export default class FluwxPlugin implements FlutterPlugin, MethodCallHandler, Ab ...@@ -240,4 +258,16 @@ export default class FluwxPlugin implements FlutterPlugin, MethodCallHandler, Ab
attemptToResumeMsgFromWx(result: MethodResult) { attemptToResumeMsgFromWx(result: MethodResult) {
WXAPiHandler.wxApi?.handleWant(this.binding?.getAbility().launchWant, this) WXAPiHandler.wxApi?.handleWant(this.binding?.getAbility().launchWant, this)
} }
async launchMiniProgram(call: MethodCall, result: MethodResult) {
const request = new wechatSDK.LaunchMiniProgramReq();
request.userName = call.argument("userName");
request.path = call.argument("path");
// sdk 内当前没 type 常量, 直接使用传入的参数
request.miniprogramType = call.argument("miniprogramType") ?? 0;
const done = await WXAPiHandler.wxApi?.sendReq(this.uiContext, request);
result.success(done);
}
} }
\ No newline at end of file
...@@ -47,7 +47,7 @@ export class FluwxAuthHandler implements OAuthCallback { ...@@ -47,7 +47,7 @@ export class FluwxAuthHandler implements OAuthCallback {
return this.diffDevOauth; return this.diffDevOauth;
} }
sendAuth(call: MethodCall, result: MethodResult) { async sendAuth(call: MethodCall, result: MethodResult) {
const req = new SendAuthReq(); const req = new SendAuthReq();
req.isOption1 = false; req.isOption1 = false;
req.scope = call.argument("scope"); req.scope = call.argument("scope");
...@@ -57,10 +57,10 @@ export class FluwxAuthHandler implements OAuthCallback { ...@@ -57,10 +57,10 @@ export class FluwxAuthHandler implements OAuthCallback {
req.openId = openid; req.openId = openid;
} }
req.nonAutomatic = call.argument("nonAutomatic") ?? false; req.nonAutomatic = call.argument("nonAutomatic") ?? false;
result.success(WXAPiHandler.wxApi?.sendReq(
WXAPiHandler.uiContext, const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
req
)) result.success(done);
} }
authByQRCode(call: MethodCall, result: MethodResult) { authByQRCode(call: MethodCall, result: MethodResult) {
......
...@@ -54,7 +54,9 @@ export class FluwxShareHandler { ...@@ -54,7 +54,9 @@ export class FluwxShareHandler {
const req = new wechatSDK.SendMessageToWXReq(); const req = new wechatSDK.SendMessageToWXReq();
req.message = mediaMsg; req.message = mediaMsg;
result.success(WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req)) const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
result.success(done)
} }
async shareImage(call: MethodCall, result: MethodResult) { async shareImage(call: MethodCall, result: MethodResult) {
...@@ -80,6 +82,7 @@ export class FluwxShareHandler { ...@@ -80,6 +82,7 @@ export class FluwxShareHandler {
const req = new wechatSDK.SendMessageToWXReq(); const req = new wechatSDK.SendMessageToWXReq();
req.message = mediaMsg; req.message = mediaMsg;
result.success(WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req)); const done = await WXAPiHandler.wxApi?.sendReq(WXAPiHandler.uiContext, req);
result.success(done);
} }
} }
\ No newline at end of file
import * as wechatOpenSDK from "@tencent/wechat_open_sdk" import * as wechatOpenSDK from "@tencent/wechat_open_sdk"
import { MethodCall, MethodResult } from '@ohos/flutter_ohos' import { MethodCall, MethodResult } from '@ohos/flutter_ohos'
import { bundle, bundleManager, common } from '@kit.AbilityKit' import { bundleManager, common } from '@kit.AbilityKit'
export class WXAPiHandler { export class WXAPiHandler {
static wxApi: wechatOpenSDK.WXApi | null = null static wxApi: wechatOpenSDK.WXApi | null = null
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论