FireMobileSimulatorでajaxを使ったらユーザエージェントの偽装が解除される

Read More

FireMobileSimulatorはよくお世話になるFirefoxのアドオンの一つ。

これは、PCのWebブラウザからのアクセスなのに、指定したモバイルでアクセスしたようにユーザエージェントを偽装してくれるというもの。
mobileやsmartphoneの開発の時によく使う。


で、だ。


FireMobileSimulatorを利用してsmartphoneサイトを作る時にajaxを利用していたら、
ちょっと注意が必要な場面があったのでメモとして残しておく。


現象を文章で書くと、
ページロードのajaxを利用すると端末モードで指定したはずのユーザエージェント偽装が解除される。

うん、これだけ見ても意味わからんね。


以下は実際の動作検証のためのメモ。

■用意するもの
2つのページを用意する。
AページにはクリックするとBページをロードするajaxを書いておく。
Bページはただのテキストでよい。
AページでもBページでもページの先頭でユーザエージェントを出力するようにしておく。


■動作チェック手順
FireMobileSimulatorの端末モードSB iPhone 3GでAページを開く。
Aページのロードajaxを動作させてBページを読み込む。


すると、あら不思議。

Aページではsmartphoneなのに、ロードしたBページはpcとなる。


検証用ページ:
http://xirasaya.com/demo/3
※デモにアクセスしたらFireMobileSimulatorの端末モードをスマホに切り替えるのを忘れないように。




モバイルでajaxを使うことは無いはずだから、気をつけなくてはならないのはスマホの時のみ。


ちなみに、Safariでユーザエージェントを偽装して同じことをするとあちらは期待する動作となる。



Comments(4)

1  115ちゃん  2012/05/22 (火) 10:21 ID:XXXXXXXXX
あらま。。。
最近はスマフォやipadサイトのオーダーが増えてきて、調べることが多いんですよね。。。
基本的なことですが、タブレットのリンクってどうしてますか??
(同じウインドウで開くとき)

2  シラサヤ  2012/05/22 (火) 11:51 ID:XXXXXXXXX
そだね。スマホ案件増えてきてるね。

>タブレットのリンクってどうしてますか
これは使い勝手を考えたデザインの話かの?
それともアニメーションとか挙動の話?
まあどちらにせよ、少なくともスマホに関しては俺よりあなたの方が よりユーザ視点になれるんじゃないの

3  115ちゃん  2012/05/23 (水) 11:45 ID:XXXXXXXXX
新しいipadもGETしました(笑)

質問ざっくり過ぎて???でしたよね。
私も書いた後に???って思いました。すみません(汗)

今新しいipad用にアプリケーションを開発してるんですが、
そのアプリをデスクトップに表示(アプリとして使用)して、
そこ(アイコン)からアクセスすると、
aタグでのリンクは全て別ウインドウで開かれるんです。
これって普通なのかな??

今はonclick="location.href=~でページ遷移さすようにしてるんですが、私の勘違いなのかな?
ちょっと調べてみます~!

4  シラサヤ  2012/05/23 (水) 15:58 ID:XXXXXXXXX
Webクリップから通常起動じゃなくてWebアプリモードで起動させてるのね。

Webアプリモードの場合、
'#'(シャープ)付きかlocation.hrefじゃないと外部サイトとして認識する仕様だから通常リンクのままじゃダメだろうね。

でもjQueryMobile使ってるのなら通常リンクも動的にlocation.hrefを使うように変更できたはず。


つーかWebアプリモードで起動させる理由って何?
表示領域を確保するため?