小编el_*_*_el的帖子

使用AJAX/XMLHttpRequest时不调用shouldStartLoadWithRequest

我正在尝试将方法调用从JavaScript发送到Objective-C,反之亦然.一切都适用于window.location触发的url,这是由shouldStartLoadWithRequest捕获的.现在,如果我尝试使用AJAX调用,则不会调用shouldStartLoadWithRequest.有没有办法做到这一点?主要是我不希望限制在可以从JavaScript传递给Objective-C的数据的最大URL大小.

我的UIWebViewDelegate实现:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
 NSString *url = [[request URL] absoluteString];
 NSRange urlrange = [url rangeOfString:@"myScheme://"];
 if(urlrange.length > 0){
  NSLog(@"this is an objective-c call, do not load link: %@", [url substringWithRange:NSMakeRange(urlrange.location, [url length])] );
  return NO;
 } else {
  NSLog(@"not an objective-c call, load link: ", url );
  return YES;
 }
}
Run Code Online (Sandbox Code Playgroud)

我的JavaScript调用:

// works
window.location.href = "myScheme://readyHref";  

// fails
var xmlHttpReq = false;
if (window.XMLHttpRequest) {
 xmlHttpReq = new XMLHttpRequest();
} else if (window.ActiveXObject) { …
Run Code Online (Sandbox Code Playgroud)

iphone iphone-sdk-3.0

8
推荐指数
2
解决办法
7591
查看次数

标签 统计

iphone ×1

iphone-sdk-3.0 ×1