2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UIWebViewのUAのこと

Posted at

ユーザーエージェント(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

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?