• ベストアンサー

携帯端末振り分けソースがソフトバンク端末でうまくいかない?

携帯端末振り分けの以下のソースを利用していますが、ソフトバンクからフリーで配布されている「ウェブコンテンツビューア」というシュミレータを使いテストするとtype1~3いずれもデスクトップと判断されてしまいます。 「ウェブコンテンツビューア」は何か設定が必要なのでしょうか?、それともこれらのソースにはソフトバンク端末に対するソースのミスがあるのでしょうか? #type1 if($ua=~ /DoCoMo/){$user_agent = 'mobile';} elsif($ua=~ /J-PHONE\/2/){$user_agent = 'mobile';} elsif($ua=~ /J-PHONE\/[3-9]/){$user_agent = 'mobile';} elsif($ua=~ /Vodafone/){$user_agent = 'mobile';} elsif($ua=~ /SoftBank/){$user_agent = 'mobile';} elsif($ua=~ /ASTEL/){$user_agent = 'mobile';} elsif(index($ua,"UP.Browser")==0){$user_agent = 'mobile';} elsif(index($ua,"UP.Browser") > 0){$user_agent = 'mobile';} else{$user_agent = 'desktop';}#Mac and PC #type2 if($ua =~ /^(DoCoMo\/1)/i){$user_agent = 'mobile';}#DoCoMo elsif($ua =~ /^(DoCoMo\/2)/i){$user_agent = 'mobile';}#DoCoMo_FOMA elsif($ua =~ /^ASTEL/i){$user_agent = 'mobile';}#ASTEL elsif($ua =~ /^J\-PHONE/i){$user_agent = 'mobile';}#softbank elsif($ua =~ /^Vodafone/i){$user_agent = 'mobile';}#softbank elsif($ua =~ /^SoftBank/i){$user_agent = 'mobile';}#softbank elsif($ua =~ /^KDDI/i){$user_agent = 'mobile';}#au elsif($ua =~ /^UP\.Browser/i){$user_agent = 'mobile';}#au else{$user_agent = 'desktop';}#Mac and PC #type3 if ($ua =~ /DoCoMo|J-PHONE|Vodafone|Softbank|MOT-|L-mode|DDIPOCKET|PDXGW|ASTEL/ ) { $user_agent = 'mobile'; } else{$user_agent = 'desktop';}

質問者が選んだベストアンサー

  • ベストアンサー
  • jfk26
  • ベストアンサー率68% (3287/4771)
回答No.1

これは要するにuser_agentに各キャリアに含まれる固有の文字列で、携帯であることを確定してそれ以外はPCであると判断しようということですね。 そうすると下記の参考URLを見てください。 各キャリアのシュミレーターについて書いてあるのですが、その下の方に「ソフトバンク ウェブコンテンツビューア」にも触れられています。 この中で『※注意点!』としてこう書いてあります。 「このシミュレータで注意しなければならない点があります。 このシミュレータでは「USER_AGENT」という識別子を発信して いません。」 シュミレーターだけわざわざ「USER_AGENT」という識別子を発信しないように作ったと言うのは考えにくく、そもそも「ソフトバンク ウェブコンテンツビューア」自体が仕様として「USER_AGENT」という識別子を発信しないようになっているのではないですか。 そうすると「ソフトバンク ウェブコンテンツビューア」の場合は携帯とは確認されずに、その以外に含まれてしまってPCと判断されてしまうということではないでしょうか。 下記のサイトにはさらに 「携帯で閲覧すると自動で振り替えを行う.htaccess や.cgi などをご使用の際は確認できないことがありますので注意してください。 その際はSoftbank用(Vodafone用)のページのアドレスを直接入力するようにしてください。」 と書いてあります。

参考URL:
http://blog.mag2.com/m/log/0000199475/107827584.html?js
perlerz10
質問者

お礼

その通りでした。通らないわけです。 「Semulator」なんていう「USER_AGENTをもたされていました。 ありがとうございました。

その他の回答 (1)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

ウェブコンテンツビューアのHTTP_USER_AGENTは本物とは違って 'SoftBank' という文字列は入っていないようです。 全部を調べた訳ではありませんが 'Vemulator'というのがUAの最初に入っているようですのでシミュレータに合わせるなら、'Vemulator'が含まれていたらSoftBankと判定してはどうでしょう。

perlerz10
質問者

お礼

ありがとうございます。 夜中にねぼけてd/lして使い始めたもので、いやーびびりました。

関連するQ&A