在那里完成某些操作后如何从Web视图返回?

时间:2014-07-22 11:56:46

标签: objective-c uiwebview payment-gateway ccavenue

我正在申请中实施CCAvenue门户。 从我的网站在Web视图中加载CCAvenue网关。

现在,在使用Success / Failur页面完成交易后,我如何才能了解并加载我的应用程序成功页面.... 请帮帮我朋友

2 个答案:

答案 0 :(得分:2)

最简单的方法是让您的网页发送带有自定义方案的请求,例如myapp:// transactionSuccess和您的应用程序,以便在webView委托中处理此问题:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

    NSURL *URL = [request URL];
    if ([[URL scheme] isEqualToString:@"myapp"]) {
        // handle the response
        NSString *host = [URL host];
        if ([host isEqualToString:@"transactionSuccess"]) {
            // show your custom screen
            return NO;
        }
    }

    return YES;
}

答案 1 :(得分:2)

Dan Spag是正确的 - URL Schemes使管理和理解变得更加容易,但有时候这些是不可能的。另一种方法是在成功/失败网页中确保在dom(或HTML正文响应)中设置响应状态,然后使用stringByEvaluatingJavaScriptFromString在iOS中本地捕获... ...

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *responseState = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"];
 // or possibly a javascript property in the webview's loaded page if preferred.

   if([responseState isEqualToString:@"success"])
   {
       // do something with success
   } 
   else if([responseState isEqualToString:@"fail"]) {
      // do something with fail
   }

   [self.webView removeFromSuperView];

}