diff --git a/README.mkdn b/README.mkdn index b43e5b1..9d5fcee 100644 --- a/README.mkdn +++ b/README.mkdn @@ -7,11 +7,11 @@ But this module can work on browsers. Usage ------ - var ma = require('mobileagent.js'), + var MobileAgent = require('../mobileagent.js'), http = require('http'); http.createServer(function (req, res) { - var ma = ma.getMobileAgent(req); + var ma = MobileAgent.getMobileAgent(req); res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello ' + ma.getCarrierLongName() + '\n'); diff --git a/eg/server.js b/eg/server.js index 53790ca..d17bd37 100644 --- a/eg/server.js +++ b/eg/server.js @@ -1,8 +1,8 @@ -var ma = require('../mobileagent.js'), +var MobileAgent = require('../mobileagent.js'), http = require('http'); http.createServer(function (req, res) { - var ma = ma.getMobileAgent(req); + var ma = MobileAgent.getMobileAgent(req); res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello ' + ma.getCarrierLongName() + '\n'); diff --git a/mobileagent.js b/mobileagent.js index 539110f..b92cc6e 100644 --- a/mobileagent.js +++ b/mobileagent.js @@ -455,19 +455,29 @@ var MobileAgentNonMobile = MobileAgentBase.extend({ * @param req request object. It is normally node.js' HTTP request. **/ function getMobileAgent(req) { - var ua = req['user-agent'], - carrier = detectCarrier(ua); - switch (carrier) { + var ua, + headers, + carrier; + if (typeof req === 'object') { + if ('headers' in req) { + headers = req['headers']; + } else { + headers = req; + } + } else { + headers = { 'user-agent': req }; // plain string + } + switch (detectCarrier(headers['user-agent'])) { case 'I': - return new MobileAgentDoCoMo(req); + return new MobileAgentDoCoMo(headers); case 'V': - return new MobileAgentSoftBank(req); + return new MobileAgentSoftBank(headers); case 'E': - return new MobileAgentEZWeb(req); + return new MobileAgentEZWeb(headers); case 'H': - return new MobileAgentAirHPhone(req); + return new MobileAgentAirHPhone(headers); default: - return new MobileAgentNonMobile(req); + return new MobileAgentNonMobile(headers); } }