Satoshi Tanimoto > HTTP-MobileAgent-0.24 > HTTP::MobileAgent

Download:
HTTP-MobileAgent-0.24.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.24   Source   Latest Release: HTTP-MobileAgent-0.36

NAME ^

HTTP::MobileAgent - HTTP mobile user agent string parser

SYNOPSIS ^

  use HTTP::MobileAgent;

  my $agent = HTTP::MobileAgent->new(Apache->request);
  # or $agent = HTTP::MobileAgent->new; to get from %ENV
  # or $agent = HTTP::MobileAgent->new($agent_string);

  if ($agent->is_docomo) {
      # or if ($agent->name eq 'DoCoMo')
      # or if ($agent->isa('HTTP::MobileAgent::DoCoMo'))
      # it's NTT DoCoMo i-mode.
      # see what's available in H::MA::DoCoMo
  } elsif ($agent->is_vodafone) {
      # it's Vodafone(J-Phone).
      # see what's available in H::MA::Vodafone
  } elsif ($agent->is_ezweb) {
      # it's KDDI/EZWeb.
      # see what's available in H::MA::EZweb
  } else {
      # may be PC
      # $agent is H::MA::NonMobile
  }

  my $display = $agent->display;        # HTTP::MobileAgent::Display
  if ($display->color) { ... }

DESCRIPTION ^

HTTP::MobileAgent parses HTTP_USER_AGENT strings of (mainly Japanese) mobile HTTP user agents. It'll be useful in page dispatching by user agents.

METHODS ^

Here are common methods of HTTP::MobileAgent subclasses. More agent specific methods are described in each subclasses. Note that some of common methods are also overrided in some subclasses.

new
  $agent = HTTP::MobileAgent->new;
  $agent = HTTP::MobileAgent->new($r);  # Apache or HTTP::Request
  $agent = HTTP::MobileAgent->new($ua_string);

parses HTTP headers and constructs HTTP::MobileAgent subclass instance. If no argument is supplied, $ENV{HTTP_*} is used.

Note that you nees to pass Aapche or HTTP::Requet object to new(), as some mobile agents put useful information on HTTP headers other than only User-Agent: (like x-jphone-msname in J-Phone).

user_agent
  print "User-Agent: ", $agent->user_agent;

returns User-Agent string.

name
  print "name: ", $agent->name;

returns User-Agent name like 'DoCoMo'.

is_docomo, is_vodafone(is_j_phone), is_ezweb, is_wap1, is_wap2, is_tuka,is_non_mobile
   if ($agent->is_docomo) { }

returns if the agent is DoCoMo, Vodafone(J-Phone) or EZweb.

carrier
  print "carrier: ", $agent->carrier;    
carrier_longname
  print "carrier_longname: ", $agent->carrier_longname;    
display
  my $display = $agent->display;

returns HTTP::MobileAgent::Display object. See HTTP::MobileAgent::Display for details.

WARNINGS ^

Following warnings might be raised when $^W is on.

"%s: no match. Might be new variants. please contact the author of HTTP::MobileAgent!"

User-Agent: string does not match patterns provided in subclasses. It may be faked user-agent or a new variant. Feel free to mail me to inform this.

NOTE ^

"Why not adding this module as an extension of HTTP::BrowserDetect?"

Yep, I tried to do. But the module's code seems hard enough for me to extend and don't want to bother the author for this mobile-specific features. So I made this module as a separated one.

MORE IMPLEMENTATIONS ^

If you have any idea / request for this module to add new subclass, I'm open to the discussion or (more preferable) patches. Feel free to mail me.

OTHER LANGUAGE BINDINGS ^

This module is now ported to PHP as Net::UserAgent::Mobile by Atsuhiro KUBO. See http://pear.php.net/package-info.php?pacid=180 for details.

AUTHOR ^

Tatsuhiko Miyagawa <miyagawa@bulknews.net>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

MAIN ^

SEE ALSO ^

HTTP::MobileAgent::DoCoMo, HTTP::MobileAgent::Vodafone, HTTP::MobileAgent::JPhone, HTTP::MobileAgent::EZweb, HTTP::MobileAgent::NonMobile, HTTP::MobileAgent::Display, HTTP::BrowserDetect

Reference URL for specification is listed in Pods for each subclass.

syntax highlighting: