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

reponse handler on ios

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