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)