2011年6月8日水曜日

MacOSXのchromeでスマートフォン用UserAgentを偽装

MacOSXのchromeでスマートフォン用のUserAgentを偽装して表示したかったので、User-Agent Switcher のExtensionを入れてみたのですがなんか上手く動かず、イラっとして起動用スクリプト書いてみました。
UserAgentの値はMAX FACTORY スマートフォン機種情報一覧から頂きました。有難うございます。
起動アプリはgmailになってます。(URLの変数の値を変えると変更できます)
終了時にchromeのエラーが出力されたりするのですが...気にせず使ってますが...なにか間違っていたらすいません。

#!/bin/sh

# 指定されたUserAgentをつかってGoogleChromeを起動します。@ Mac
# 
# chromeの設定は ${USER_DATA_DIR}の場所に入ります。

USER_DATA_DIR="/~/Library/Application Support/Google/Chrome/smartphonedev"
URL="https://mail.google.com/mail/"

# UserAgent一覧
iPhone4="Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7"
iPhone3GS="Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; ja-jp) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7E18 Safari/528.16"
iPad="Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"

HT03A="Mozilla/5.0 (Linux; U; Android 1.5; ja-jp; HT-03A Build/CDB72) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1"
Xperia="Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SonyEricssonSO-01B Build/R1EA018) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1"
GalaxyS="Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-02B Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
IS01="Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; IS01 Build/S6191) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1"
IS02="Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 8.12; MSIEMobile 6.5) KDDI-TS01"
IS03="Mozilla/5.0 (Linux; U; Android 2.1-update1; ja-jp; IS03 Build/S2080) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17"
Desire="Mozilla/5.0 (Linux; U; Android 2.1-update1; ja-jp; HTCX06HT Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17"
Aria="Mozilla/5.0 (Linux; U; Android 2.2.1; ja-jp; S31HT Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"

while true; do
    cat >>EOF
使用するUserAgentを選択してください
1:iPhone4
2:iPhone3GS
3:iPad
4:HT-03A
5:Xperia
6:GalaxyS
7:IS01
8:IS02
9:IS03
10:Desire
11:Aria
数字を入力してください
EOF
    read ACT
    case ${ACT} in
     1)  USER_AGENT=$iPhone4 break ;;
     2)  USER_AGENT=$iPhone3GS break ;;
     3)  USER_AGENT=$iPad break ;;
     4)  USER_AGENT=$HT03A break ;;
     5)  USER_AGENT=$Xperia break ;;
     6)  USER_AGENT=$GalaxyS break ;;
     7)  USER_AGENT=$IS01 break ;;
     8)  USER_AGENT=$IS02 break ;;
     9)  USER_AGENT=$IS03 break ;;
     10)  USER_AGENT=$Desire break ;;
     11)  USER_AGENT=$Aria break ;;
     *)
      printf "エラー: 無効な項目 \"%s\" が入力されました\n" "${ACT}"
      ;;
    esac
  done
 
echo userAgent = "${USER_AGENT}"

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir="${USER_DATA_DIR}" --app="${URL}" --user-agent="${USER_AGENT}"
exit 0


user-data-dir を指定するとか知りませんでした。
開発テストではdirを切り分けるとなにかと良いかも。
• • •