Groups | Blog | Home
all groups > asp.net mobile > november 2005 >

asp.net mobile : WAP redirection without using PHP / ASP / ASP.NET


domtam NO[at]SPAM hotmail.com
11/29/2005 4:08:05 PM
Hi there.

My goal is to add some script to my home page (which is NOT asp / aspx
page, and it is not hosted in IIS) so that any request from mobile
browser will be redirect to another page (a wap page which uses asp.net
mobile control page). How can I do that?

Originally, I planned to use Javascript to do it.

<script language="javascript">
var agt = navigator.userAgent.toLowerCase();
var is_mobile = ( (agt.indexOf("blacknerry") != -1)
|| (agt.indexOf("nokia") != -1)
|| (agt.indexOf("WebtV") != -1)
|| (agt.indexOf("windows ce") != -1)
|| (agt.indexOf("microsoft pocket internet explorer") != -1)
|| (agt.indexOf("up") != -1)
// more different mobile browser user agent here.

);
var mobile_url = "http://wap.mydomain.com";
if (is_mobile)
window.location = mobile_url;

</script>

It worked with Pocket PC IE, but it didn't work with BlackBerry browser
(emulator).

I suspect that it's because the blackberry browser doesn't understand
javascript. Is that true? If it is the case, it probably won't work for
other mobile browser too.

Is there a better solution to this problem?

Thanks
Dom
Richard Cornford
11/30/2005 1:12:32 AM
[quoted text, click to view]

Redirecting with client-side scripts is generally considered the worst
method available. It certainly is not reliable.

[quoted text, click to view]

The userAgent string is a reflection of the browser's User-Agent header,
and HTTP 1.1 specifies the User-Agent header in a way that precludes it
being regarded as a source of information. (That is, this strategy is
predicated upon a false assumption.)

[quoted text, click to view]

This condition can never be true as your string contains only lower case
letters as a result of the use of - toLowerCase -.

[quoted text, click to view]

You are going to regard any userAgent string that contains the character
sequence 'up' as a mobile?

[quoted text, click to view]

I don't know. It may be incapable of interpreting javascript, or its
interpreter may be disabled by default (either are common with embedded
browsers).

[quoted text, click to view]

Yes, it won't work with many embedded browsers, including the ones that
spoof IE in their UA strings.

[quoted text, click to view]

Content negotiation on the server, as per HTTP 1.1 (RFC 2616) (so not a
javascript question). You serve WAP pages to browsers that send Accept
headers expressing a preference for them. Mobile browsers that support
WAP can be expected to do that.

Richard.

domtam NO[at]SPAM hotmail.com
11/30/2005 10:53:00 AM
Thank you, Richard, for your answer. Yes, there were some mistakes in
my original script, but you got my idea.

Could you please eleborate your suggestion (content negotiation) a bit
more? I'm not familiar in this topic. In particular, what do I exactly
need to do on my home page to redirect the WAP request? Do I need to
change some settings in the web server (or something like that)?

How do I specify the URL that handles WAP request?

Thanks again
Dom
AddThis Social Bookmark Button