質問に直接回答しなかったことをお詫びしますが、もっと簡単なオプションを検討することをお勧めします。にjavascriptを挿入せずに、フォーム送信をスニッフィングできるはずですUIWebView。UIWebViewDelegateあなたの:にこのようなものを実装するだけです
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if ([[[request URL] absoluteString] hasPrefix:@"https://www.thirdpartysite.com/theirLoginScript"]) {
NSString *username = [self parseUsernameFromRequest:request];
NSString *password = [self parsePasswordFromRequest:request];
[self saveUsername:username andPassword:password];
}
return YES;
}
parseUsernameFromRequest:、、parsePasswordFromRequest:の実装はsaveUsername:andPassword:あなたの想像力に任せました。
(ヒント:フォームがGETメソッドを使用して[[request URL] parameterString]いる場合は、を使用してパラメーターを取得できます。フォームがPOSTメソッドを使用している場合は、を使用できます[[NSString alloc] initWithData:[request HTTPBody] encoding:NSUTF8StringEncoding]。)
ちなみに、パスワードなどの機密情報をNSUserDefaultsに保存しないでください。Appleは、この種の情報を安全に保管するためのキーチェーンサービスを提供しています。残念ながら、キーチェーンサービスの操作は驚くほど複雑なので、BuzzAndersenのシンプルなiPhoneキーチェーンコードを確認することをお勧めします。