ユーザーエージェント(User Agent:UA)とは?
PCやアプリからどこかのWebページを表示する時に使う「自分はどんなやつですよ(こんなブラウザから見てる人ですよ)」という名札のこと
たとえばこういうの
Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60
サイト側はユーザーエージェントを判定して、PC用のサイトとモバイル用のサイトを切り替えたりする
ただし、UAは偽装することもできるので、完全に信頼してはいけない
WebViewのUAをカスタマイズする
NSUserDefaultsの"UserAgent"キーで値を登録すると、UAをカスタマイズできる。
★実際に使うUIWebViewのインスタンスを生成するよりも前に行うこと(didFinishLaunchingWithOptionsなど)
// デフォルトのUserAgentを取得する
UIWebView *webview = [[UIWebView alloc] init];
NSString *originalUA = [webview stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
// デフォルトのUAに独自の文字列を追加する
NSString *customUA = [NSString stringWithFormat:@"%@ %@", originalUA, @"追加したい文字列"];
// UserAgentをキーに辞書を作成
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:customUA , @"UserAgent", nil];
// UserDefaultsにカスタムUAを登録する
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
ちなみに
registerDefaultsで登録した内容は、アプリを終了すると消える
setObjectで登録した内容は、アプリを終了しても消えない(アプリ削除しない限り)
参考
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
http://wa3.i-3-i.info/word1452.html
WebViewのユーザーエージェントをカスタマイズする (iOS)
http://docs.repro.io/ja/dev/sdk/webview/custom-ua-ios.html#webview-ios