我正在尝试为 iPhone 构建一个“类似 iBooks”的阅读器。我从我的网络服务接收大量文本(html),将其列列(在 webview 中,通过 javascript),然后尝试将一组“列”从 javascript(来自 webview)发送回目标 c 顺序要创建 viewControllers,我需要使用 UIPageViewController(每列一个,或者基本上每页一个)。
我正在使用 shouldStartLoadWithRequest 拦截 webview 中的每个位置更改,将 url 作为调用方法,并将“/”之后的第一个字符串作为该方法的参数:
- (BOOL)webView:(UIWebView*)webViewRef shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
//NSLog(@"REQUEST: %@", request);
NSURL *URL = [request URL]; //Get the URL
if ( [[URL scheme] isEqualToString:@"objc"] ) {
NSMutableString *host = [[URL host] mutableCopy];
[host appendString:@":"];
SEL method = NSSelectorFromString( host );
NSArray *chunks = [URL pathComponents];
NSString *stringToPass = [[chunks objectAtIndex:1] stringByReplacingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSLog(stringToPass);
if ([self respondsToSelector:method])
{
[self performSelector:method withObject:stringToPass afterDelay:0.1f];
}
return NO;
}
return YES;
}
我现在的主要问题是,文本可能太长,以至于 url 无法实际包含它(事实上,如果我 NSLog 它,它会被剪切)。有没有更好的方法来实现同样的目标?
我应该创建一个本地服务器还是打开一个套接字来将数据从 JS 发送到 objc 还是目前有更简单的方法?