IBM Worklight 6.2 ChallengeHandler submitFailure:行为不符合预期

时间:2014-11-04 13:44:21

标签: ios objective-c ibm-mobilefirst

我正在使用Worklight 6.2 iOS本机框架。我已经实现了一个自定义MyChallengeHandler子类ChallengeHandler,并登录:

[[WLClient sharedInstance] login:@"SomeRealm" withDelegate:LoginListener];

ChallengeHandler我可以提交成功,在onSuccess:中调用LoginListener

[self submitSuccess:response];

但是,我无法提交失败,我希望在onFailure:中拨打LoginListener。实际上,调用submitFailure:并且onFailure:中永远不会调用LoginListener时看起来没有效果。

另外,我在WL submitFailure:标题中看不到ChallengeHandler的声明,只能在BaseChallengeHandler中使用。

我的主要观点是,目前看起来似乎永远不会调用LoginListener onFailure:方法,但有时候handleChallenge:会失败。并且LoginListener应该被释放。

这是Worklight中的已知问题,是否有解决方法?

更新1:

刚刚为JS客户端API发现了类似的问题,这对本机没有用: Adapter procedure call, reporting an authentication failure

更新2:

这可能很重要。我正在使用适配器身份验证,但在IBM示例中有submitLoginForm:,也许我的问题仅适用于适配器身份验证。

[self submitAdapterAuthentication:invocationData options:nil]

1 个答案:

答案 0 :(得分:0)

到目前为止,这是一个很大的模糊,但我会写一些我想到的可能性。如果有任何帮助,请告诉我,我会更新我的答案。

1)上面的代码说您使用的是课程ChallangeHandler。我不确定拼写错误是仅在StackOverflow中还是在您的真实代码中,但该类为ChallengeHandler,其中e

handleChallange代替handleChallenge

2)您是否在某处注册了挑战处理程序?

[[WLClient sharedInstance] registerChallengeHandler:[[MyChallengeHandler alloc] initWithViewController:self] ];

3)您是否获得了LoginListener的成功?你的挑战处理程序?

你说文件没有提到submitFailure是对的 - 我会调查一下。

然而,在我写的代码中,我能够毫无问题地使用它。

@implementation MyChallengeHandler
//...
-(void) onSuccess:(WLResponse *)response {
    NSLog(@"inside challenge success");
    [self.vc.navigationController popViewControllerAnimated:YES];
    [self submitSuccess:response];
}

-(void) onFailure:(WLFailResponse *)response {
    NSLog(@"inside challenge failure");
    [self submitFailure:response];
}