提交 69a62e0d authored 作者: JarvanMo's avatar JarvanMo

reponse handler on ios

上级 06a05a58
...@@ -37,7 +37,7 @@ object FluwxResponseHandler { ...@@ -37,7 +37,7 @@ object FluwxResponseHandler {
type to response.type, type to response.type,
errCode to response.errCode, errCode to response.errCode,
openId to response.openId, openId to response.openId,
WechatPluginKeys.PLATFORM to "android" WechatPluginKeys.PLATFORM to WechatPluginKeys.ANDROID
) )
channel?.invokeMethod(WeChatPluginMethods.WE_CHAT_SHARE_RESPONSE, result) channel?.invokeMethod(WeChatPluginMethods.WE_CHAT_SHARE_RESPONSE, result)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#import "FluwxMethods.h" #import "FluwxMethods.h"
#import "FluwxKeys.h" #import "FluwxKeys.h"
@class FluwxShareHandler; @class FluwxShareHandler;
@class FluwxResponseHandler;
extern BOOL isWeChatRegistered; extern BOOL isWeChatRegistered;
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#import "StringUtil.h" #import "StringUtil.h"
#import "../../../../../../ios/Classes/handler/FluwxShareHandler.h" #import "../../../../../../ios/Classes/handler/FluwxShareHandler.h"
#import "ImageSchema.h" #import "ImageSchema.h"
#import "FluwxResponseHandler.h"
@implementation FluwxPlugin @implementation FluwxPlugin
...@@ -15,7 +16,9 @@ BOOL isWeChatRegistered = NO; ...@@ -15,7 +16,9 @@ BOOL isWeChatRegistered = NO;
FlutterMethodChannel *channel = [FlutterMethodChannel FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"fluwx" methodChannelWithName:@"fluwx"
binaryMessenger:[registrar messenger]]; binaryMessenger:[registrar messenger]];
FluwxPlugin *instance = [[FluwxPlugin alloc] initWithRegistrar:registrar]; FluwxPlugin *instance = [[FluwxPlugin alloc] initWithRegistrar:registrar];
[[FluwxResponseHandler responseHandler] setMethodChannel:channel];
[registrar addMethodCallDelegate:instance channel:channel]; [registrar addMethodCallDelegate:instance channel:channel];
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
// //
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <Flutter/Flutter.h>
#import "FluwxKeys.h"
#import "WXApi.h" #import "WXApi.h"
@protocol WXApiManagerDelegate <NSObject> @protocol WXApiManagerDelegate <NSObject>
...@@ -40,10 +42,12 @@ ...@@ -40,10 +42,12 @@
- (void)managerDidRecvPayInsuranceResponse:(WXPayInsuranceResp *)response; - (void)managerDidRecvPayInsuranceResponse:(WXPayInsuranceResp *)response;
@end @end
@interface WXApiManager : NSObject<WXApiDelegate> @interface FluwxResponseHandler : NSObject<WXApiDelegate>
@property (nonatomic, assign) id<WXApiManagerDelegate> delegate; @property (nonatomic, assign) id<WXApiManagerDelegate> delegate;
+ (instancetype)sharedManager; + (instancetype)responseHandler;
- (void) setMethodChannel:(FlutterMethodChannel *) flutterMethodChannel;
@end @end
...@@ -6,72 +6,119 @@ ...@@ -6,72 +6,119 @@
// //
// //
#import "WXApiManager.h" #import "FluwxResponseHandler.h"
@implementation WXApiManager @implementation FluwxResponseHandler
const NSString *errStr = @"errStr";
const NSString *errCode = @"errCode";
const NSString *openId = @"openId";
const NSString *type = @"type";
const NSString *lang = @"lang";
const NSString *country = @"country";
const NSString *description = @"description";
#pragma mark - LifeCycle #pragma mark - LifeCycle
+(instancetype)sharedManager {
+ (instancetype)responseHandler {
static dispatch_once_t onceToken; static dispatch_once_t onceToken;
static WXApiManager *instance; static FluwxResponseHandler *instance;
dispatch_once(&onceToken, ^{ dispatch_once(&onceToken, ^{
instance = [[WXApiManager alloc] init]; instance = [[FluwxResponseHandler alloc] init];
}); });
return instance; return instance;
} }
FlutterMethodChannel *methodChannel = nil;
- (void)setMethodChannel:(FlutterMethodChannel *)flutterMethodChannel {
methodChannel = flutterMethodChannel;
}
#pragma mark - WXApiDelegate #pragma mark - WXApiDelegate
- (void)onResp:(BaseResp *)resp { - (void)onResp:(BaseResp *)resp {
if ([resp isKindOfClass:[SendMessageToWXResp class]]) { if ([resp isKindOfClass:[SendMessageToWXResp class]]) {
if (_delegate if (_delegate
&& [_delegate respondsToSelector:@selector(managerDidRecvMessageResponse:)]) { && [_delegate respondsToSelector:@selector(managerDidRecvMessageResponse:)]) {
SendMessageToWXResp *messageResp = (SendMessageToWXResp *)resp; SendMessageToWXResp *messageResp = (SendMessageToWXResp *) resp;
[_delegate managerDidRecvMessageResponse:messageResp]; [_delegate managerDidRecvMessageResponse:messageResp];
// @{fluwxKeyPlatform: fluwxKeyIOS, fluwxKeyResult: @(done)}
} }
SendMessageToWXResp *messageResp = (SendMessageToWXResp *) resp;
NSDictionary *result = @{
description: messageResp.description,
errStr: messageResp.errStr,
errCode: @(messageResp.errCode),
type: @(messageResp.type),
country: messageResp.country,
lang: messageResp.lang,
fluwxKeyPlatform: fluwxKeyIOS
};
[methodChannel invokeMethod:@"onShareResponse" arguments:result];
} else if ([resp isKindOfClass:[SendAuthResp class]]) { } else if ([resp isKindOfClass:[SendAuthResp class]]) {
if (_delegate if (_delegate
&& [_delegate respondsToSelector:@selector(managerDidRecvAuthResponse:)]) { && [_delegate respondsToSelector:@selector(managerDidRecvAuthResponse:)]) {
SendAuthResp *authResp = (SendAuthResp *)resp; SendAuthResp *authResp = (SendAuthResp *) resp;
[_delegate managerDidRecvAuthResponse:authResp]; [_delegate managerDidRecvAuthResponse:authResp];
} }
SendAuthResp *authResp = (SendAuthResp *) resp;
NSDictionary *result = @{
description: authResp.description,
errStr: authResp.errStr,
errCode: @(authResp.errCode),
type: @(authResp.type),
country: authResp.country,
lang: authResp.lang,
fluwxKeyPlatform: fluwxKeyIOS,
@"code":authResp.code,
@"state":authResp.state
};
[methodChannel invokeMethod:@"onAuthResponse" arguments:result];
} else if ([resp isKindOfClass:[AddCardToWXCardPackageResp class]]) { } else if ([resp isKindOfClass:[AddCardToWXCardPackageResp class]]) {
if (_delegate if (_delegate
&& [_delegate respondsToSelector:@selector(managerDidRecvAddCardResponse:)]) { && [_delegate respondsToSelector:@selector(managerDidRecvAddCardResponse:)]) {
AddCardToWXCardPackageResp *addCardResp = (AddCardToWXCardPackageResp *)resp; AddCardToWXCardPackageResp *addCardResp = (AddCardToWXCardPackageResp *) resp;
[_delegate managerDidRecvAddCardResponse:addCardResp]; [_delegate managerDidRecvAddCardResponse:addCardResp];
} }
} else if ([resp isKindOfClass:[WXChooseCardResp class]]) { } else if ([resp isKindOfClass:[WXChooseCardResp class]]) {
if (_delegate if (_delegate
&& [_delegate respondsToSelector:@selector(managerDidRecvChooseCardResponse:)]) { && [_delegate respondsToSelector:@selector(managerDidRecvChooseCardResponse:)]) {
WXChooseCardResp *chooseCardResp = (WXChooseCardResp *)resp; WXChooseCardResp *chooseCardResp = (WXChooseCardResp *) resp;
[_delegate managerDidRecvChooseCardResponse:chooseCardResp]; [_delegate managerDidRecvChooseCardResponse:chooseCardResp];
} }
}else if ([resp isKindOfClass:[WXChooseInvoiceResp class]]){ } else if ([resp isKindOfClass:[WXChooseInvoiceResp class]]) {
if (_delegate if (_delegate
&& [_delegate respondsToSelector:@selector(managerDidRecvChooseInvoiceResponse:)]) { && [_delegate respondsToSelector:@selector(managerDidRecvChooseInvoiceResponse:)]) {
WXChooseInvoiceResp *chooseInvoiceResp = (WXChooseInvoiceResp *)resp; WXChooseInvoiceResp *chooseInvoiceResp = (WXChooseInvoiceResp *) resp;
[_delegate managerDidRecvChooseInvoiceResponse:chooseInvoiceResp]; [_delegate managerDidRecvChooseInvoiceResponse:chooseInvoiceResp];
} }
}else if ([resp isKindOfClass:[WXSubscribeMsgResp class]]){ } else if ([resp isKindOfClass:[WXSubscribeMsgResp class]]) {
if ([_delegate respondsToSelector:@selector(managerDidRecvSubscribeMsgResponse:)]) if ([_delegate respondsToSelector:@selector(managerDidRecvSubscribeMsgResponse:)]) {
{ [_delegate managerDidRecvSubscribeMsgResponse:(WXSubscribeMsgResp *) resp];
[_delegate managerDidRecvSubscribeMsgResponse:(WXSubscribeMsgResp *)resp];
} }
}else if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]]){ } else if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]]) {
if ([_delegate respondsToSelector:@selector(managerDidRecvLaunchMiniProgram:)]) { if ([_delegate respondsToSelector:@selector(managerDidRecvLaunchMiniProgram:)]) {
[_delegate managerDidRecvLaunchMiniProgram:(WXLaunchMiniProgramResp *)resp]; [_delegate managerDidRecvLaunchMiniProgram:(WXLaunchMiniProgramResp *) resp];
} }
}else if([resp isKindOfClass:[WXInvoiceAuthInsertResp class]]){ } else if ([resp isKindOfClass:[WXInvoiceAuthInsertResp class]]) {
if ([_delegate respondsToSelector:@selector(managerDidRecvInvoiceAuthInsertResponse:)]) { if ([_delegate respondsToSelector:@selector(managerDidRecvInvoiceAuthInsertResponse:)]) {
[_delegate managerDidRecvInvoiceAuthInsertResponse:(WXInvoiceAuthInsertResp *) resp]; [_delegate managerDidRecvInvoiceAuthInsertResponse:(WXInvoiceAuthInsertResp *) resp];
} }
}else if([resp isKindOfClass:[WXNontaxPayResp class]]){ } else if ([resp isKindOfClass:[WXNontaxPayResp class]]) {
if ([_delegate respondsToSelector:@selector(managerDidRecvNonTaxpayResponse:)]) { if ([_delegate respondsToSelector:@selector(managerDidRecvNonTaxpayResponse:)]) {
[_delegate managerDidRecvNonTaxpayResponse:(WXNontaxPayResp *)resp]; [_delegate managerDidRecvNonTaxpayResponse:(WXNontaxPayResp *) resp];
} }
}else if ([resp isKindOfClass:[WXPayInsuranceResp class]]){ } else if ([resp isKindOfClass:[WXPayInsuranceResp class]]) {
if ([_delegate respondsToSelector:@selector(managerDidRecvPayInsuranceResponse:)]) { if ([_delegate respondsToSelector:@selector(managerDidRecvPayInsuranceResponse:)]) {
[_delegate managerDidRecvPayInsuranceResponse:(WXPayInsuranceResp *)resp]; [_delegate managerDidRecvPayInsuranceResponse:(WXPayInsuranceResp *) resp];
} }
} }
} }
...@@ -79,20 +126,20 @@ ...@@ -79,20 +126,20 @@
- (void)onReq:(BaseReq *)req { - (void)onReq:(BaseReq *)req {
if ([req isKindOfClass:[GetMessageFromWXReq class]]) { if ([req isKindOfClass:[GetMessageFromWXReq class]]) {
if (_delegate if (_delegate
&& [_delegate respondsToSelector:@selector(managerDidRecvGetMessageReq:)]) { && [_delegate respondsToSelector:@selector(managerDidRecvGetMessageReq:)]) {
GetMessageFromWXReq *getMessageReq = (GetMessageFromWXReq *)req; GetMessageFromWXReq *getMessageReq = (GetMessageFromWXReq *) req;
[_delegate managerDidRecvGetMessageReq:getMessageReq]; [_delegate managerDidRecvGetMessageReq:getMessageReq];
} }
} else if ([req isKindOfClass:[ShowMessageFromWXReq class]]) { } else if ([req isKindOfClass:[ShowMessageFromWXReq class]]) {
if (_delegate if (_delegate
&& [_delegate respondsToSelector:@selector(managerDidRecvShowMessageReq:)]) { && [_delegate respondsToSelector:@selector(managerDidRecvShowMessageReq:)]) {
ShowMessageFromWXReq *showMessageReq = (ShowMessageFromWXReq *)req; ShowMessageFromWXReq *showMessageReq = (ShowMessageFromWXReq *) req;
[_delegate managerDidRecvShowMessageReq:showMessageReq]; [_delegate managerDidRecvShowMessageReq:showMessageReq];
} }
} else if ([req isKindOfClass:[LaunchFromWXReq class]]) { } else if ([req isKindOfClass:[LaunchFromWXReq class]]) {
if (_delegate if (_delegate
&& [_delegate respondsToSelector:@selector(managerDidRecvLaunchFromWXReq:)]) { && [_delegate respondsToSelector:@selector(managerDidRecvLaunchFromWXReq:)]) {
LaunchFromWXReq *launchReq = (LaunchFromWXReq *)req; LaunchFromWXReq *launchReq = (LaunchFromWXReq *) req;
[_delegate managerDidRecvLaunchFromWXReq:launchReq]; [_delegate managerDidRecvLaunchFromWXReq:launchReq];
} }
} }
......
...@@ -214,6 +214,7 @@ ...@@ -214,6 +214,7 @@
ext.withShareTicket = withShareTicket; ext.withShareTicket = withShareTicket;
ext.miniProgramType = programType; ext.miniProgramType = programType;
WXMediaMessage *message = [WXMediaMessage messageWithTitle:(title == (id) [NSNull null]) ?nil:title WXMediaMessage *message = [WXMediaMessage messageWithTitle:(title == (id) [NSNull null]) ?nil:title
Description:(description == (id) [NSNull null]) ?nil:description Description:(description == (id) [NSNull null]) ?nil:description
Object:ext Object:ext
......
//
// Created by mo on 2018/8/15.
//
#import <Foundation/Foundation.h>
@interface WeChatResponseHandler : NSObject
@end
\ No newline at end of file
//
// Created by mo on 2018/8/15.
//
#import "WeChatResponseHandler.h"
@implementation WeChatResponseHandler {
}
@end
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论