iPhone用の「iBooksのような」リーダーを作ろうとしています。Webサービスから大量のテキスト(html)を受け取り、それを列化して(Webビュー内でjavascriptを介して)、「列」の配列をjavascriptから(Webビューから)ObjectiveCに順番に返そうとしています。 viewControllersを作成するには、UIPageViewControllerを使用する必要があります(列ごとに1つ、または基本的にページごとに1つ)。
私はshouldStartLoadWithRequestを使用して、Webビュー内のすべての場所の変更をインターセプトし、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にデータを送信するためのソケットを開く必要がありますか、それとも現時点でより簡単な方法がありますか?