这可能是一个难以解释的问题。我有一个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而不显示响应。
答案 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,并且本机方法称为“启动请求”。