23
23

More than 5 years have passed since last update.

Webviewのnavigator.userAgentを独自のユーザーエージェントにする方法と、その他諸注意(Googel Analytics etc..)

Last updated at Posted at 2013-12-17

HTMLで作ったスマホページのレイアウトを、特定のWebviewから見られているときだけ変更したいと思い、アプリ側のWebViewに独自のUAを設定し、jsでユーザーエージェント取得・判定・表示の切り分けを行いました。試した中で気づいたことをメモ。

■諸注意

UAの設定方法が、Googel Analytics(以下GA)とwebviewで表示されるページの見え方に影響する

■完全オリジナルのUAを設定した場合
・GAではアクセスをユーザーエージェント毎に分けて見られるので、アプリからのアクセスのみを簡単に把握できる。
・Webviewで開いたページ側がレイアウトをUAで判断して切り分けている場合に、スマホと見なされずPC版が表示されてしまう。

■デフォルトUAに独自語句を付加した場合
・GAの集計には、safariからのアクセスとして合算されてしまう。
・Webviewで開いたページはスマホ表示

■設定方法

1.デフォルトのuserAgentを取得して、接尾にカスタム語句" HOGEHOGE"を連結
(見やすくするため頭にスペース入れた)

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString *userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
NSString *customUserAgent = [userAgent stringByAppendingString:@" HOGEHOGE"];

2.UserAgentに設定

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:customUserAgent , @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
23
23
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
23
23