Skip to content

Commit

Permalink
iOS 测试用例,回调部分测试成功
Browse files Browse the repository at this point in the history
  • Loading branch information
leenjewel committed Sep 23, 2015
1 parent 3b21916 commit 931c1d2
Show file tree
Hide file tree
Showing 10 changed files with 263 additions and 52 deletions.
37 changes: 35 additions & 2 deletions example/ios/mysdkappexample/libmysdk/include/mysdk/MySDKKit.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,39 @@

#import "MySDKiOSDelegate.h"

typedef void(^MySDKiOSOnSuccessCallback)(NSString* sdkname, NSString* methodname, NSString* result);
typedef void(^MySDKiOSOnCancelCallback)(NSString* sdkname, NSString* methodname, NSString* result);
typedef void(^MySDKiOSOnFailCallback)(NSString* sdkname, NSString* methodname, int errorcode, NSString* error, NSString* result);
typedef void(^MySDKiOSOnPayCallback)(BOOL iserror, int errorcode, NSString* error, NSString* sdkname, NSString* productid, NSString* orderid, NSString* result);

@interface MySDKiOSListener : NSObject
{
MySDKiOSOnSuccessCallback onSuccessBlock;
MySDKiOSOnFailCallback onFailBlock;
MySDKiOSOnCancelCallback onCancelBlock;
MySDKiOSOnPayCallback onPayResultBlock;
}

- (id) init;

- (void) onSuccess:(MySDKiOSOnSuccessCallback)blcok;

- (void) onFail:(MySDKiOSOnFailCallback)block;

- (void) onCancel:(MySDKiOSOnCancelCallback)block;

- (void) onPayResult:(MySDKiOSOnPayCallback)block;

- (MySDKiOSOnSuccessCallback) getSuccessBlock;

- (MySDKiOSOnFailCallback) getFailBlock;

- (MySDKiOSOnCancelCallback) getCancelBlock;

- (MySDKiOSOnPayCallback) getPayResultBlock;

@end

@interface MySDKKit : NSObject<UIApplicationDelegate>
{
UIViewController* _controller;
Expand Down Expand Up @@ -50,9 +83,9 @@
- (NSString*) applySDK:(NSString*)sdkname Method:(NSString*)methodname AndReturnString:(NSString*)params;


- (void) applySDK:(NSString*)sdkname Method:(NSString*)methodname WithParams:(NSString*)params AndCallback:(id<MySDKiOSCallbackDelegate>)callback;
- (void) applySDK:(NSString*)sdkname Method:(NSString*)methodname WithParams:(NSString*)params AndCallback:(MySDKiOSListener*)callback;

- (void) applySDK:(NSString*)sdkname Pay:(NSString*)productid Order:(NSString*)orderid WithParams:(NSString*)params AndCallback:(id<MySDKiOSCallbackDelegate>)callback;
- (void) applySDK:(NSString*)sdkname Pay:(NSString*)productid Order:(NSString*)orderid WithParams:(NSString*)params AndCallback:(MySDKiOSListener*)callback;

@end

Expand Down
Binary file modified example/ios/mysdkappexample/libmysdk/libmysdk.a
Binary file not shown.
18 changes: 16 additions & 2 deletions example/ios/mysdkappexample/mysdkappexample/ViewController.mm
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,24 @@ - (IBAction)onBtnApplySDKMethodAndReturnString:(id)sender {
[[self textViewTestResult] setText:[NSString stringWithFormat:@"%@ applySDKMethodAndReturnString return %@", SDKID, ret]];
}
- (IBAction)onBtnApplySDKMethodWithCallback:(id)sender {
MySDKListener* listener = new MySDKListener();

MySDKiOSListener* listener = [[MySDKiOSListener alloc] init];
[listener onSuccess:^(NSString *sdkname, NSString *methodname, NSString *result) {
[[self textViewTestResult] setText:[NSString stringWithFormat:@"%@ applySDKMethodWithCallback callback SUCCESS %@", SDKID, result]];
}];
[listener onCancel:^(NSString *sdkname, NSString *methodname, NSString *result) {
[[self textViewTestResult] setText:[NSString stringWithFormat:@"%@ applySDKMethodWithCallback callback CANCEL %@", SDKID, result]];
}];
[listener onFail:^(NSString *sdkname, NSString *methodname, int errorcode, NSString* error, NSString *result) {
[[self textViewTestResult] setText:[NSString stringWithFormat:@"%@ applySDKMethodWithCallback callback FAIL %d %@ %@", SDKID, errorcode, error, result]];
}];
[[MySDKKit getInstance] applySDK:SDKID Method:@"test" WithParams:@"" AndCallback:listener];
}
- (IBAction)onBtnApplySDKPay:(id)sender {
MySDKiOSListener* listener = [[MySDKiOSListener alloc] init];
[listener onPayResult:^(BOOL iserror, int errorcode, NSString *error, NSString *sdkname, NSString *productid, NSString *orderid, NSString *result) {
[[self textViewTestResult] setText:[NSString stringWithFormat:@"%@ applySDKPay callback %@ %d %@ %@ %@ %@", SDKID, (iserror?@"ERROR":@"SUCCESS"), errorcode, error, productid, orderid, result]];
}];
[[MySDKKit getInstance] applySDK:SDKID Pay:@"testPorductID" Order:@"testOrderID" WithParams:@"" AndCallback:listener];
}

@end
Binary file not shown.
16 changes: 16 additions & 0 deletions example/ios/mysdksdkexample/mysdksdkexample/mysdksdkexample.m
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,22 @@ - (NSString*) applySDKMethod:(NSString*)methodname AndReturnString:(NSString*)pa
return @"Hi I am mysdksdkexample";
}

- (void) applySDKMethod:(NSString *)methodname WithParams:(NSString *)params AndCallback:(id<MySDKiOSCallbackDelegate>)callback
{
if (params && [params length] > 0) {
[callback onApplySDK:@"mysdksdkexample" Method:@"test" Success:[NSString stringWithFormat:@"params : %@", params]];
} else {
[callback onApplySDK:@"mysdksdkexample" Method:@"test" Fail:1 WithError:@"params is empty" AndResult:@""];
}
}

- (void) applySDKPay:(NSString *)productid Order:(NSString *)orderid WithParams:(NSString *)params AndCallback:(id<MySDKiOSCallbackDelegate>)callback
{
if (params && [params length] > 0) {
[callback onApplySDK:@"mysdksdkexample" Pay:productid Order:orderid Success:[NSString stringWithFormat:@"params : %@", params]];
} else {
[callback onApplySDK:@"mysdksdkexample" Pay:productid Order:orderid Fail:1 WithError:@"params is empty" AndResult:@""];
}
}

@end
24 changes: 20 additions & 4 deletions src/MySDK-iOS.mm
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,23 @@

void MySDK::applySDKMethodWithCallback(std::string sdkName, std::string methodName, std::string params, int callbackHandle)
{
MySDKiOSCallback* callback = [[MySDKiOSCallback alloc] init:callbackHandle];
MySDKiOSListener* listener = [[MySDKiOSListener alloc] init];
[listener onSuccess:^(NSString *sdkname, NSString *methodname, NSString *result) {
MySDKCallback* callback = MySDKCallback::getCallback(callbackHandle);
callback->onSuccess(NSString2CString(sdkname, ""), NSString2CString(methodname, ""), NSString2CString(result, ""));
}];
[listener onCancel:^(NSString *sdkname, NSString *methodname, NSString *result) {
MySDKCallback* callback = MySDKCallback::getCallback(callbackHandle);
callback->onCancel(NSString2CString(sdkname, ""), NSString2CString(methodname, ""), NSString2CString(result, ""));
}];
[listener onFail:^(NSString *sdkname, NSString *methodname, int errorcode, NSString *error, NSString *result) {
MySDKCallback* callback = MySDKCallback::getCallback(callbackHandle);
callback->onFail(NSString2CString(sdkname, ""), NSString2CString(methodname, ""), errorcode, NSString2CString(error, ""), NSString2CString(result, ""));
}];
[[MySDKKit getInstance] applySDK:CString2NSString(sdkName)
Method:CString2NSString(methodName)
WithParams:CString2NSString(params)
AndCallback:callback];
AndCallback:listener];
}


Expand All @@ -101,12 +113,16 @@

void MySDK::applySDKPay(std::string sdkName, std::string productID, std::string orderID, std::string params, int callbackHandle)
{
MySDKiOSCallback* callback = [[MySDKiOSCallback alloc] init:callbackHandle];
MySDKiOSListener* listener = [[MySDKiOSListener alloc] init];
[listener onPayResult:^(BOOL iserror, int errorcode, NSString *error, NSString *sdkname, NSString *productid, NSString *orderid, NSString *result) {
MySDKCallback* callback = MySDKCallback::getCallback(callbackHandle);
callback->onPayResult(iserror, errorcode, NSString2CString(error, ""), NSString2CString(sdkname, ""), NSString2CString(productid, ""), NSString2CString(orderid, ""), NSString2CString(result, ""));
}];
[[MySDKKit getInstance] applySDK:CString2NSString(sdkName)
Pay:CString2NSString(productID)
Order:CString2NSString(orderID)
WithParams:CString2NSString(params)
AndCallback:callback];
AndCallback:listener];
}


Expand Down
37 changes: 35 additions & 2 deletions src/MySDKKit.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,39 @@

#import "MySDKiOSDelegate.h"

typedef void(^MySDKiOSOnSuccessCallback)(NSString* sdkname, NSString* methodname, NSString* result);
typedef void(^MySDKiOSOnCancelCallback)(NSString* sdkname, NSString* methodname, NSString* result);
typedef void(^MySDKiOSOnFailCallback)(NSString* sdkname, NSString* methodname, int errorcode, NSString* error, NSString* result);
typedef void(^MySDKiOSOnPayCallback)(BOOL iserror, int errorcode, NSString* error, NSString* sdkname, NSString* productid, NSString* orderid, NSString* result);

@interface MySDKiOSListener : NSObject
{
MySDKiOSOnSuccessCallback onSuccessBlock;
MySDKiOSOnFailCallback onFailBlock;
MySDKiOSOnCancelCallback onCancelBlock;
MySDKiOSOnPayCallback onPayResultBlock;
}

- (id) init;

- (void) onSuccess:(MySDKiOSOnSuccessCallback)blcok;

- (void) onFail:(MySDKiOSOnFailCallback)block;

- (void) onCancel:(MySDKiOSOnCancelCallback)block;

- (void) onPayResult:(MySDKiOSOnPayCallback)block;

- (MySDKiOSOnSuccessCallback) getSuccessBlock;

- (MySDKiOSOnFailCallback) getFailBlock;

- (MySDKiOSOnCancelCallback) getCancelBlock;

- (MySDKiOSOnPayCallback) getPayResultBlock;

@end

@interface MySDKKit : NSObject<UIApplicationDelegate>
{
UIViewController* _controller;
Expand Down Expand Up @@ -50,9 +83,9 @@
- (NSString*) applySDK:(NSString*)sdkname Method:(NSString*)methodname AndReturnString:(NSString*)params;


- (void) applySDK:(NSString*)sdkname Method:(NSString*)methodname WithParams:(NSString*)params AndCallback:(id<MySDKiOSCallbackDelegate>)callback;
- (void) applySDK:(NSString*)sdkname Method:(NSString*)methodname WithParams:(NSString*)params AndCallback:(MySDKiOSListener*)callback;

- (void) applySDK:(NSString*)sdkname Pay:(NSString*)productid Order:(NSString*)orderid WithParams:(NSString*)params AndCallback:(id<MySDKiOSCallbackDelegate>)callback;
- (void) applySDK:(NSString*)sdkname Pay:(NSString*)productid Order:(NSString*)orderid WithParams:(NSString*)params AndCallback:(MySDKiOSListener*)callback;

@end

Expand Down
65 changes: 61 additions & 4 deletions src/MySDKKit.m
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,63 @@
*/

#import "MySDKKit.h"
#import "MySDKiOSCallback.h"

@implementation MySDKiOSListener

- (id) init
{
self = [super init];
onSuccessBlock = nil;
onFailBlock = nil;
onCancelBlock = nil;
onPayResultBlock = nil;
return self;
}


- (void) onSuccess:(MySDKiOSOnSuccessCallback)blcok
{
onSuccessBlock = blcok;
}

- (void) onFail:(MySDKiOSOnFailCallback)block
{
onFailBlock = block;
}

- (void) onCancel:(MySDKiOSOnCancelCallback)block
{
onCancelBlock = block;
}

- (void) onPayResult:(MySDKiOSOnPayCallback)block
{
onPayResultBlock = block;
}

- (MySDKiOSOnSuccessCallback) getSuccessBlock
{
return onSuccessBlock;
}

- (MySDKiOSOnFailCallback) getFailBlock
{
return onFailBlock;
}

- (MySDKiOSOnCancelCallback) getCancelBlock
{
return onCancelBlock;
}

- (MySDKiOSOnPayCallback) getPayResultBlock
{
return onPayResultBlock;
}


@end

@implementation MySDKKit

Expand Down Expand Up @@ -132,21 +189,21 @@ - (NSString*) applySDK:(NSString*)sdkname Method:(NSString*)methodname AndReturn
}


- (void) applySDK:(NSString*)sdkname Method:(NSString*)methodname WithParams:(NSString*)params AndCallback:(id<MySDKiOSCallbackDelegate>)callback
- (void) applySDK:(NSString*)sdkname Method:(NSString*)methodname WithParams:(NSString*)params AndCallback:(MySDKiOSListener*)listener
{
MYSDK_APPLY_SDK_METHOD_BEGIN(sdkname, applySDK:Method:WithParams:AndCallback:)
dispatch_async(dispatch_get_main_queue(), ^{
[sdk applySDKMethod:methodname WithParams:params AndCallback:callback];
[sdk applySDKMethod:methodname WithParams:params AndCallback:[[MySDKiOSCallback alloc] init:listener]];
});
MYSDK_APPLY_SDK_METHOD_END
}


- (void) applySDK:(NSString*)sdkname Pay:(NSString*)productid Order:(NSString*)orderid WithParams:(NSString*)params AndCallback:(id<MySDKiOSCallbackDelegate>)callback
- (void) applySDK:(NSString*)sdkname Pay:(NSString*)productid Order:(NSString*)orderid WithParams:(NSString*)params AndCallback:(MySDKiOSListener*)listener
{
MYSDK_APPLY_SDK_METHOD_BEGIN(sdkname, applySDKPay:Order:WithParams:AndCallback:)
dispatch_async(dispatch_get_main_queue(), ^{
[sdk applySDKPay:productid Order:orderid WithParams:params AndCallback:callback];
[sdk applySDKPay:productid Order:orderid WithParams:params AndCallback:[[MySDKiOSCallback alloc] init:listener]];
});
MYSDK_APPLY_SDK_METHOD_END
}
Expand Down
9 changes: 7 additions & 2 deletions src/MySDKiOSCallback.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,19 @@
#define MySDKiOSCallback_h

#import <Foundation/Foundation.h>
#import "MySDKKit.h"
#import "MySDKiOSDelegate.h"

@interface MySDKiOSCallback : NSObject<MySDKiOSCallbackDelegate>
{
int _handler;
MySDKiOSListener* _listener;
}

- (id) init:(int)handler;
- (id) init;

- (id) init:(MySDKiOSListener*)listener;

- (id) initWithHandler:(int)handler;

- (void) onApplySDK:(NSString*)sdkname Method:(NSString*)methodname Success:(NSString*)result;

Expand Down
Loading

0 comments on commit 931c1d2

Please sign in to comment.