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, ...@@ -57,6 +57,8 @@ class FluwxPlugin : FlutterPlugin, MethodCallHandler, ActivityAware,
callingChannel = fluwxChannel callingChannel = fluwxChannel
when { when {
call.method == "registerApp" -> WXAPiHandler.registerApp(call, result, context) 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 == "sendAuth" -> authHandler?.sendAuth(call, result)
call.method == "authByQRCode" -> authHandler?.authByQRCode(call, result) call.method == "authByQRCode" -> authHandler?.authByQRCode(call, result)
call.method == "stopAuthByQRCode" -> authHandler?.stopAuthByQRCode(result) call.method == "stopAuthByQRCode" -> authHandler?.stopAuthByQRCode(result)
......
...@@ -19,13 +19,15 @@ ...@@ -19,13 +19,15 @@
package com.jarvan.fluwx.handlers package com.jarvan.fluwx.handlers
import android.content.Context 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.IWXAPI
import com.tencent.mm.opensdk.openapi.WXAPIFactory 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.MethodCall
import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel
import com.tencent.mm.opensdk.constants.Build
object WXAPiHandler { object WXAPiHandler : ILog {
var wxApi: IWXAPI? = null var wxApi: IWXAPI? = null
...@@ -104,4 +106,57 @@ object WXAPiHandler { ...@@ -104,4 +106,57 @@ object WXAPiHandler {
registered = api.registerApp(appId) registered = api.registerApp(appId)
wxApi = api wxApi = api
} }
}
\ No newline at end of file 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 { ...@@ -87,6 +87,26 @@ class ShareSelectorPage extends StatelessWidget {
child: const Text('Get ExtMessage'), 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(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: OutlinedButton( child: OutlinedButton(
......
...@@ -59,6 +59,10 @@ FlutterMethodChannel *channel = nil; ...@@ -59,6 +59,10 @@ FlutterMethodChannel *channel = nil;
if ([@"registerApp" isEqualToString:call.method]) { if ([@"registerApp" isEqualToString:call.method]) {
[self registerApp:call result:result]; [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]) { } else if ([@"isWeChatInstalled" isEqualToString:call.method]) {
[self checkWeChatInstallation:call result:result]; [self checkWeChatInstallation:call result:result];
} else if ([@"sendAuth" isEqualToString:call.method]) { } else if ([@"sendAuth" isEqualToString:call.method]) {
...@@ -124,6 +128,27 @@ FlutterMethodChannel *channel = nil; ...@@ -124,6 +128,27 @@ FlutterMethodChannel *channel = nil;
result(@(isWeChatRegistered)); 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 { - (void)checkWeChatInstallation:(FlutterMethodCall *)call result:(FlutterResult)result {
result(@([WXApi isWXAppInstalled])); result(@([WXApi isWXAppInstalled]));
} }
......
...@@ -90,6 +90,17 @@ Future<String?> getExtMsg() { ...@@ -90,6 +90,17 @@ Future<String?> getExtMsg() {
return _channel.invokeMethod('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. /// Share your requests to WeChat.
/// This depends on the actual type of [model]. /// This depends on the actual type of [model].
/// see [_shareModelMethodMapper] for detail. /// see [_shareModelMethodMapper] for detail.
......
...@@ -41,3 +41,20 @@ extension MiniProgramTypeExtensions on WXMiniProgramType { ...@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论