Detect Mobile Browsers

Với xu hướng phát triển mạnh mẽ của các thiết bị di động cầm tay như smartphone & tablet ở giai đoạn hiện, việc phát triển web dành riêng cho mobile đã trở thành một nhu cầu khá phổ biến. Với các website phát triển sau này, các nhà phát triển thường chọn xu hướng thiết kế responsive. Tuy nhiên với những website đã có từ trước hoặc dữ liệu lớn, các nhà phát triển sẽ chọn phương án xây dựng một  module độc lập dành riêng cho thiết bị mobile. Và khi người dùng gõ tên miền abc.com, sẽ có 1 đoạn mã nhỏ kiểm tra thiết bị người dùng đang sử dụng, để từ đó lựa chọn redirect về giao diện web desktop hay giao diện web mobile cho phù hợp. Hiện tại để làm việc này có rất nhiều cách, tuy nhiên trong bài viết này tôi xin giới thiệu một tool khá đầy đủ hỗ trợ chúng ta làm việc này một cách hết sức đơn giản.

Đó chính là Detect Mobile Browsers, một bộ mã nguồn mở hỗ trợ việc tự động dò tìm thiết bị của người dùng truy cập web, để từ đó đưa ra phản hồi một cách hợp lý. Bộ mã nguồn này hỗ trợ cho rất nhiều ngôn ngữ như: Asp.Net, Asp, C#, jQuery, Php, Phyton....

Để sử dụng mã nguồn mở này rất đơn giản, bạn chỉ cần lựa chọn ngôn ngữ bạn đang phát triển và download đoạn mã về, bỏ đoạn mã đó vào trang Default hoặc Index trên mã nguồn của bạn (Trang sẽ được load đầu tiên khi gõ tên miền).

Với website của tôi là Asp.net C#, đoạn mã trong trang Default.aspx của tôi như sau:

<%@ Page Language="C#" %> 
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%
    string u = Request.ServerVariables["HTTP_USER_AGENT"];
    Regex b = new Regex(@"(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino", RegexOptions.IgnoreCase | RegexOptions.Multiline);
    Regex v = new Regex(@"1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-", RegexOptions.IgnoreCase | RegexOptions.Multiline);
    if ((b.IsMatch(u) || v.IsMatch(u.Substring(0, 4))))
    {
        Response.Redirect("/mobile");
    }
    else
    {
        Response.Redirect("/page");
    }
%>

Tùy vào project của mình phát triển mà các bạn lựa chọn cho mình một đoạn mã thích hợp nhất, chúc các bạn thành công!

Related Post


Hướng dẫn tích hợp ckEditor, ckFinder và plugin Syntaxhighlight vào website Asp.Net
Thursday, September 12, 2013
Hiện nay có rất nhiều Editor hỗ trợ tốt cho việc soạn thảo trên website, trong bài viết này chúng ta sẽ tìm hiểu cách tích hợp ckEditor và các plugin kèm theo để hỗ trợ cho việc soạn thảo tin bài trên web viết bằng Asp.Net
Nén HTML và tối ưu hóa mã javascript cho website Asp.Net
Sunday, September 8, 2013
Tối ưu hóa mã nguồn của trang web và tăng tốc độ tải luôn là một vấn đề được các lập trình viên hướng tới. Hiện nay có khá nhiều phương pháp và công cụ hỗ trợ các lập trình viên làm điều này. Hôm nay tôi xin giới thiệu một phương pháp khá đơn giản để giảm dung lượng trang và tối ưu hóa mã javascript trên trang.
Search

Đăng ký nhận bài mới


Category

Blog Archive