WAP redirection without using PHP / ASP / ASP.NET

Discussion in 'Javascript' started by domtam@hotmail.com, Nov 30, 2005.

  1. Guest

    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
     
    , Nov 30, 2005
    #1
    1. Advertising

  2. wrote:
    > 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?


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

    > Originally, I planned to use Javascript to do it.
    >
    > <script language="javascript">
    > var agt = navigator.userAgent.toLowerCase();


    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.)

    > var is_mobile = ( (agt.indexOf("blacknerry") != -1)
    >|| (agt.indexOf("nokia") != -1)
    >|| (agt.indexOf("WebtV") != -1)


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

    >|| (agt.indexOf("windows ce") != -1)
    >|| (agt.indexOf("microsoft pocket internet explorer") != -1)
    >|| (agt.indexOf("up") != -1)


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

    > // 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?


    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).

    > If it is the case, it probably won't work
    > for other mobile browser too.


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

    > Is there a better solution to this problem?


    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.
     
    Richard Cornford, Nov 30, 2005
    #2
    1. Advertising

  3. Guest

    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
     
    , Nov 30, 2005
    #3
  4. B Wisentaner Guest

    On 29 Nov 2005 16:08:05 -0800, wrote:

    >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


    Do not count on WAP browsers in general to support Javascript.
    If all your clients support WMLscript, you could look that up.
    I think you want to look up the WURFL list of which handsets support
    which capabilities.
    And your script tag should have " type=text/javascript' "

    ---Bruce Wisentaner
     
    B Wisentaner, Dec 11, 2005
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Aaron Whiffin
    Replies:
    0
    Views:
    612
    Aaron Whiffin
    Sep 4, 2003
  2. Buzz
    Replies:
    0
    Views:
    497
  3. Alec MacLean
    Replies:
    8
    Views:
    633
    Alec MacLean
    Sep 18, 2006
  4. Rajive Narain
    Replies:
    0
    Views:
    1,988
    Rajive Narain
    Sep 18, 2009
  5. Replies:
    2
    Views:
    154
Loading...

Share This Page