iPhone iOS UIWebviewでJavascript
たぶんもう知ってるかと思うんですが
UIWebviewはプログラムでJavascriptaが操作できます。
たとえば、表示したHTMLのフォームの値を読み込んだり
変数の値を読み込んだり、
もちろん反対に設定をして、ページ内容を書き換えたり
cssの操作もいとも簡単に行えるので
既存サイトをiPhoneアプリ向けに書き換え最適化することも
現実的には可能です。
例として、フォームに入力された値を読み取りdefaultに保存を行い
次回ページアクセス時に保存された値をフォームに埋め込むといった
処理を書くとこんな感じ。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { //次のページを読み込む前にフォームに入力された値を読み込み、デフォルト設定に書き込む NSString *inputvalue = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('name').item(0).value"]; NSLog(@"%@",inputvalue); NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:inputvalue forKey:@"user_inputvalue"]; } - (void)webViewDidFinishLoad:(UIWebView *)webView { //ページが読み込まれたら保存されているデフォルト設定を読み込み、フォームに設定をする NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; NSString * inputvalue = [defaults stringForKey:@"user_inputvalue"]; if(inputvalue==nil) inputvalue=@""; NSString *js_string = [NSString stringWithFormat:@"document.getElementsByName('name').item(0).value='%@'", inputvalue]; [webView stringByEvaluatingJavaScriptFromString:js_string]; }
まあ、表示されたURLを確認しての処理が必要だとおもいますが、
その際は現在のURLを
[webView stringByEvaluatingJavaScriptFromString:@"document.URL"]
で取得すれば、普通に文字列をif等で分岐させることもできるので
案外柔軟にあつかえるんじゃないかなーと思います。
iPhone開発って知ってることが多ければそれらを組み合わせることを
考えられるので、結構たのしいとおもいますよー
(審査が不透明だといわれるけど、今のところ、ぜんぜん問題なく通ってるしw)