Unverified 提交 2155f733 authored 作者: JarvanMo's avatar JarvanMo 提交者: GitHub

Merge pull request #476 from 9527001/feat-log

feat: 增加微信的日志开关
......@@ -57,6 +57,8 @@ class FluwxPlugin : FlutterPlugin, MethodCallHandler, ActivityAware,
callingChannel = fluwxChannel
when {
call.method == "registerApp" -> WXAPiHandler.registerApp(call, result, context)
call.method == "startLog" -> WXAPiHandler.startLog(call, result)
call.method == "stopLog" -> WXAPiHandler.stopLog(call, result)
call.method == "sendAuth" -> authHandler?.sendAuth(call, result)
call.method == "authByQRCode" -> authHandler?.authByQRCode(call, result)
call.method == "stopAuthByQRCode" -> authHandler?.stopAuthByQRCode(result)
......
......@@ -19,13 +19,15 @@
package com.jarvan.fluwx.handlers
import android.content.Context
import android.util.Log
import com.tencent.mm.opensdk.constants.Build
import com.tencent.mm.opensdk.openapi.IWXAPI
import com.tencent.mm.opensdk.openapi.WXAPIFactory
import com.tencent.mm.opensdk.utils.ILog
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
import com.tencent.mm.opensdk.constants.Build
object WXAPiHandler {
object WXAPiHandler : ILog {
var wxApi: IWXAPI? = null
......@@ -104,4 +106,57 @@ object WXAPiHandler {
registered = api.registerApp(appId)
wxApi = api
}
fun startLog(call: MethodCall, result: MethodChannel.Result) {
wxApi?.setLogImpl(this);
result.success(true);
}
fun stopLog(call: MethodCall, result: MethodChannel.Result) {
wxApi?.setLogImpl(null);
result.success(true);
}
override fun d(p0: String?, p1: String?) {
when {
p1 != null -> {
Log.d(p0, p1);
}
}
}
override fun i(p0: String?, p1: String?) {
when {
p1 != null -> {
Log.d(p0, p1);
}
}
}
override fun e(p0: String?, p1: String?) {
when {
p1 != null -> {
Log.d(p0, p1);
}
}
}
override fun v(p0: String?, p1: String?) {
when {
p1 != null -> {
Log.d(p0, p1);
}
}
}
override fun w(p0: String?, p1: String?) {
when {
p1 != null -> {
Log.d(p0, p1);
}
}
}
}
......@@ -87,6 +87,26 @@ class ShareSelectorPage extends StatelessWidget {
child: const Text('Get ExtMessage'),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: OutlinedButton(
onPressed: () async {
bool? success = await startLog(logLevel: WXLogLevel.NORMAL);
print('startLog:$success\n');
},
child: const Text('start log'),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: OutlinedButton(
onPressed: () async {
dynamic success = await stopLog();
print('stopLog:$success\n');
},
child: const Text('stop log'),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: OutlinedButton(
......
......@@ -59,6 +59,10 @@ FlutterMethodChannel *channel = nil;
if ([@"registerApp" isEqualToString:call.method]) {
[self registerApp:call result:result];
} else if ([@"startLog" isEqualToString:call.method]) {
[self startLog:call result:result];
} else if ([@"stopLog" isEqualToString:call.method]) {
[self stopLog:call result:result];
} else if ([@"isWeChatInstalled" isEqualToString:call.method]) {
[self checkWeChatInstallation:call result:result];
} else if ([@"sendAuth" isEqualToString:call.method]) {
......@@ -124,6 +128,27 @@ FlutterMethodChannel *channel = nil;
result(@(isWeChatRegistered));
}
- (void)startLog:(FlutterMethodCall *)call result:(FlutterResult)result {
NSNumber *typeInt = call.arguments[@"logLevel"];
WXLogLevel logLevel = WXLogLevelDetail;
if ([typeInt isEqualToNumber:@1]) {
logLevel = WXLogLevelDetail;
} else if ([typeInt isEqualToNumber:@0]) {
logLevel = WXLogLevelNormal;
}
NSLog(@"%@",call.arguments);
[WXApi startLogByLevel:logLevel logBlock:^(NSString * _Nonnull log) {
NSLog(@"%@",log);
}];
result([NSNumber numberWithBool:true]);
}
- (void)stopLog:(FlutterMethodCall *)call result:(FlutterResult)result {
[WXApi stopLog];
result([NSNumber numberWithBool:true]);
}
- (void)checkWeChatInstallation:(FlutterMethodCall *)call result:(FlutterResult)result {
result(@([WXApi isWXAppInstalled]));
}
......
......@@ -90,6 +90,17 @@ Future<String?> getExtMsg() {
return _channel.invokeMethod('getExtMsg');
}
/// start Log
/// defalult [WXLogLevel.DETAIL]
Future<bool?> startLog({WXLogLevel logLevel = WXLogLevel.DETAIL}) async {
return await _channel.invokeMethod('startLog', {'logLevel': logLevel.toNativeInt()});
}
/// stop log
Future<bool?> stopLog() async {
return await _channel.invokeMethod('stopLog');
}
/// Share your requests to WeChat.
/// This depends on the actual type of [model].
/// see [_shareModelMethodMapper] for detail.
......
......@@ -41,3 +41,20 @@ extension MiniProgramTypeExtensions on WXMiniProgramType {
}
}
}
/// 打印日常的日志
/// 打印详细的日志
enum WXLogLevel { NORMAL, DETAIL }
extension LogLevelExtensions on WXLogLevel {
int toNativeInt() {
switch (this) {
case WXLogLevel.DETAIL:
return 1;
case WXLogLevel.NORMAL:
return 0;
default:
return 0;
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论