<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Shai Raiten&amp;#39;s Blog : TECH, JavaScript, Windows Phone 7</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/JavaScript/Windows+Phone+7/default.aspx</link><description>Tags: TECH, JavaScript, Windows Phone 7</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>How To: Detect Mobile Device Users In Your Web Site – JavaScript</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2011/12/09/how-to-detect-mobile-device-users-in-your-web-site-javascript.aspx</link><pubDate>Fri, 09 Dec 2011 17:05:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:952303</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=952303</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2011/12/09/how-to-detect-mobile-device-users-in-your-web-site-javascript.aspx#comments</comments><description>&lt;div class="share-buttons"&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;PADDING-RIGHT:15px;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;&lt;a class="twitter-share-button" href="http://twitter.com/share?url=http://blogs.microsoft.co.il/blogs/shair/archive/2011/12/09/how-to-detect-mobile-device-users-in-your-web-site-javascript.aspx"&gt;Tweet&lt;/a&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;PADDING-RIGHT:25px;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;
&lt;script type="IN/Share"&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;&lt;iframe style="WIDTH:100px;HEIGHT:21px;" src="http://www.facebook.com/plugins/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2011/12/09/how-to-detect-mobile-device-users-in-your-web-site-javascript.aspx&amp;amp;send=false&amp;amp;layout=button_count&amp;amp;width=450&amp;amp;show_faces=false&amp;amp;action=like&amp;amp;colorscheme=light&amp;amp;font=segoe+ui&amp;amp;height=21&amp;amp;appId=184186808308137" scrolling="no" frameborder="0" style="border:none;overflow:hidden;width:450px;height:21px;"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;
&lt;div class="g-plusone"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;Today everything is about Mobile Devices, users are using their tablets and phones to view web sites. Some web sites has a mobile application or just what to inform the user about a related mobile application.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;So the question is how to inform the user about a mobile application related to a specific site?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can put some links in your site and maybe the user will click on those links and will be redirect to your mobile application, but I want more – I want my site to detect if the user comes from a mobile device and if so I want to tell him I got some mobile application for him.&lt;/p&gt;  &lt;p&gt;In order to do it I’ve wrote some JavaScript code to detect from what device the user is coming from, based on his device I’ll send him a message to inform him I got an mobile application for him and if the user decide to view it he just need to click OK and I’ll redirect him to the application market.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0F30DEF5.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_0BCF474D.png" width="752" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Code Flow:&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/952301/download.aspx" target="_blank"&gt;Download JavaScript Code&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The code is very simple, all you need to do I use navigator.userAgent to see from what browser the user is coming from and send a confirmation message, if the user click OK then change window location to your mobile application.&lt;/p&gt;  &lt;p&gt;I’ve also set a cookie to check if the user already so this message in the past 30 days, I don’t want to annoy my user each time he enters my site.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&lt;span&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;function&lt;/span&gt;&lt;/font&gt; detectMobileDevice() {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; message = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;This web site has an app for &amp;quot;&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; learn = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;Click OK to learn more&amp;quot;&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; iPadAppId = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; wp7AppId = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;c52573e0-08c5-4e33-abfa-992021f0630f&amp;quot;&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; androidAppId = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; iPhoneAppId = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; webOsId = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (document.cookie.indexOf(&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;mobile_app_notification=false&amp;quot;&lt;/font&gt;&lt;/span&gt;) &amp;lt; 0) {&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#006400"&gt;//This is not a mobile browser....&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (navigator.userAgent.match(/Opera/i) &lt;br /&gt;            || navigator.userAgent.match(/Dolphin/i)) &lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; ((navigator.userAgent.match(/Windows Phone/i)) &lt;br /&gt;            || (navigator.userAgent.match(/ZuneWP7/i))) {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; setCookie();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (wp7AppId != &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt; &amp;amp;&amp;amp; confirm(message + &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;Windows Phone! &amp;quot;&lt;/font&gt;&lt;/span&gt; + learn))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; window.location = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;zune://navigate/?phoneAppID=&amp;quot;&lt;/font&gt;&lt;/span&gt; + wp7AppId;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;span&gt;&lt;font color="#0000ff"&gt;else&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (navigator.userAgent.match(/android/i)) {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; setCookie();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (androidAppId != &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt; &amp;amp;&amp;amp; confirm(message + &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;Android phone! &amp;quot;&lt;/font&gt;&lt;/span&gt; &lt;br /&gt;                                                            + learn))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; window.location = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;market://details?id=&amp;quot;&lt;/font&gt;&lt;/span&gt; + androidAppId;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;span&gt;&lt;font color="#0000ff"&gt;else&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (navigator.userAgent.match(/iPad/i)) {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; setCookie();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (iPadAppId != &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt; &amp;amp;&amp;amp; confirm(message + &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;iPad! &amp;quot;&lt;/font&gt;&lt;/span&gt; + learn))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; window.location = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;http://itunes.apple.com/WebObjects/&lt;br /&gt;                            MZStore.woa/wa/viewSoftware?id=&amp;quot;&lt;/font&gt;&lt;/span&gt; + iPadAppId;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;span&gt;&lt;font color="#0000ff"&gt;else&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; ((navigator.userAgent.match(/iPhone/i)) || &lt;br /&gt;                (navigator.userAgent.match(/iPod/i))) {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; setCookie();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (iPhoneAppId != &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt; &amp;amp;&amp;amp; confirm(message + &lt;br /&gt;                                     &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;iPhone and iPod Touch!&amp;quot;&lt;/font&gt;&lt;/span&gt; + learn))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; window.location = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;http://itunes.apple.com/WebObjects/&lt;br /&gt;                          MZStore.woa/wa/viewSoftware?id=&amp;quot;&lt;/font&gt;&lt;/span&gt; + iPhoneAppId;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;span&gt;&lt;font color="#0000ff"&gt;else&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (navigator.userAgent.match(/webOS/i)) {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; setCookie();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (webOsId != &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt; &amp;amp;&amp;amp; confirm(message + &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;webOS phone! &amp;quot;&lt;/font&gt;&lt;/span&gt; + learn))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; window.location = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;http://developer.palm.com/appredirect/?&lt;br /&gt;                                          packageid=&amp;quot;&lt;/font&gt;&lt;/span&gt; + webOsId;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160; }&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;&lt;span&gt;&lt;font color="#006400"&gt;//Define a cookie so we don&amp;#39;t want to annoy the user.&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt; setCookie() {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; date = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt; Date();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#006400"&gt;//30 = Number of Days for the cookie to expire.&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000));&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; expires = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;; expires=&amp;quot;&lt;/font&gt;&lt;/span&gt; + date.toGMTString();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; document.cookie = &lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;mobile_app_notification=false&amp;quot;&lt;/font&gt;&lt;/span&gt; + expires;&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;detectMobileDevice();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:12pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;





&lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=952303" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Web/default.aspx">Web</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/How+To/default.aspx">How To</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/JavaScript/default.aspx">JavaScript</category></item></channel></rss>