UIWebView将XML响应显示为计划文本

时间:2014-01-28 15:47:56

标签: ios uiwebview

这可能是一个难以解释的问题。我有一个UIWebView,它发出Web服务请求并获取XML。

<ArrayOfSomething xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://Mobileapps.com/">
<tokenMappings>
<UpdateStatus>0</UpdateStatus>
<TokenNo>0</TokenNo>
</tokenMappings>
</ArrayOfSomething>

当它收到上述XML时,它会在浏览器中显示“0 0”。反正是否阻止它显示响应?我必须提出上述请求,但我只需要提取UpdateStatus和TokenNo而不显示响应。

  • 这是在UIWebView *
  • 中运行的混合应用程序

1 个答案:

答案 0 :(得分:1)

好的,您希望在uiwebview中运行的应用启动原生网址请求吗?那是对的吗 ?

这可以,但你应该考虑在javascript中使用请求。

试试这个:

我猜你已经实现了UIWebViewDelegate协议并将委托分配给当前的视图控制器。

现在实施

- (BOOL) webView:(UIWebView *)webView2 shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
if ([[[request URL] absoluteString] hasPrefix:@"yourPrefix:"]) {
    NSMutableURLRequest *request = [NSMutableURLRequest new];
    [request setURL:[NSURL URLWithString:@"http://yourserver/xml"]];
    [request setHTTPMethod:@"GET"];

    [request setValue:@"YOUR NEEDED CONTENT TYPE" forHTTPHeaderField:@"Content-Type"];


    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {   
         NSLog(@"response : %@", response.description);
         NSLog(@"response : %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }];
  }
  return YES;
}

现在,在您要启动请求的JavaScript代码中,执行以下操作:

window.location.href = "yourPrefix://";

这会开始重定向到URL,并且本机方法称为“启动请求”。