ios开发:如何用js调用ios

本文转载至 :http://blog.chinaunix.net/uid-29415710-id-4058564.html

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

  NSURL * url = [request URL];

  if ([[url scheme] isEqualToString:@"aaa"]) {

  NSArray * SeparatedArray = [[NSArray alloc]init];

  NSMutableArray *temp = [[NSMutableArray alloc] init];

  SeparatedArray = [[[url absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]componentsSeparatedByString:@","];

  [temp addObjectsFromArray:SeparatedArray];

  NSLog(@"code1__%@:",[[url absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);

  NSLog(@"url__scheme %@",[url absoluteString]);

  self.taskDownloader = [[MultiTaskDownloader alloc] init];

  // taskDownloader.delegate = self;

  for (int i = 0; i < SeparatedArray.count-1; i++) {

  NSArray *fileNames = [[SeparatedArray objectAtIndex:i] componentsSeparatedByString:@"^"];

  NSString * fileName = [fileNames lastObject];

  NSLog(@"abc---%@",fileName);

  [temp replaceObjectAtIndex:i withObject:fileName];

  [taskDownloader addTaskUrl:[[[SeparatedArray objectAtIndex:SeparatedArray.count-1] stringByAppendingString: @"/Files/" ] stringByAppendingString:[fileName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];

  [taskDownloader addTaskFielName:fileName];

  NSLog(@"fileName--00-%ld",(long)SeparatedArray.count);

  }

  [taskDownloader start];

  return NO;

  }

  上面的是ios中的主要代码。就是拦截url。根据拦截到的内容。执行对应的判断。

  function loadURL(url) {

  var iFrame;

  iFrame = document.createElement("iframe");

  iFrame.setAttribute("src", url);

  iFrame.setAttribute("style", "display:none;");

  iFrame.setAttribute("height", "0px");

  iFrame.setAttribute("width", "0px");

  iFrame.setAttribute("frameborder", "0");

  document.body.appendChild(iFrame);

  // 发起请求后这个iFrame就没用了,所以把它从dom上移除掉

  iFrame.parentNode.removeChild(iFrame);

  iFrame = null;

  }

  之后就是怎么发送url了。很简单。自己看下上面的代码。想用的时候就这样:

  loadURL("aaaa:"));

  这样在ios那就可以拦截到aaaa了。

  然后。就是你在拦截之后的想要做的东西了。

  代码很简单。大家看看吧。另外,关于ios开发,建议新手多看看ios的api。一个简单的功能,不熟悉api的人就得费很大的劲去实现,而其实用api一句话就能解决。这样对api不熟悉就很容易走弯路。

     更多关于ios开发的信息,可查询天地会http://ios.9tech.cn/

posted @ 2014-05-28 20:03  天牛  阅读(1074)  评论(0编辑  收藏  举报