移动M站建设之51Degree

  上一篇,介绍了移动M站的建设。说的很简单。觉得好像也没把M站给讲清楚。估计是对移动M站 认识还不够深刻吧。这里,在讲一讲51Degree 这个组件。

  51degrees 号称是目前最快、最准确的设备检测的解决方案。它是一个免费开源的.NET移动应用开发组件,可以用来检测移动设备和浏览器,甚至可以获取屏幕尺寸,输入法,加上制造商和型号信息等。从而可以选择性地被重定向到为移动设备而设计的内容。由于拥有精确的移动设备的数据,所以几乎支持所有的智能手机,平板电脑等移动设备。

  其实说白了,51Degree的作用,就是识别客户端的设备。PC浏览器访问,就跳转到PC站,手机浏览器访问就跳转到M站。从而达到更好的用户体验。

  官网:https://51degrees.com/

  如何将51Degree加入到网站?

  1. 新建一个Web站点,和一个移动M站点。域名分别为www.fpeach.com 和 m.fpeach.com。 具体过程不再重复,大家都会。 Demo 下载

  

  2. 下载并51degree 添加到项目。下载成功后,将FoundationV3 项目添加到解决方案, 并且Weiz.WWW 网站 引用该项目。如上图所示。

    下载地址:51degrees_NET_3.2.7.3

    

  3. 配置51degree

    a. 增加51Degrees.config 文件。注意:<redirect> 节点中的各个参数,和配置,上面都有英文备注,了解相关参数的意义和作用吧。

<?xml version="1.0"?>
<configuration>
  <!-- These configuration sections tell .NET how to handle the FiftyOne.Foundation.Mobile
  configuration settings further down the web.config file -->
  <configSections>
    <sectionGroup name="fiftyOne">
      <section name="log" type="FiftyOne.Foundation.Mobile.Configuration.LogSection, FiftyOne.Foundation" requirePermission="false" allowDefinition="Everywhere" restartOnExternalChanges="false" allowExeDefinition="MachineToApplication"/>
      <section name="redirect" type="FiftyOne.Foundation.Mobile.Configuration.RedirectSection, FiftyOne.Foundation" requirePermission="false" allowDefinition="Everywhere" restartOnExternalChanges="false" allowExeDefinition="MachineToApplication"/>
      <section name="detection" type="FiftyOne.Foundation.Mobile.Detection.Configuration.DetectionSection, FiftyOne.Foundation" requirePermission="false" allowDefinition="Everywhere" restartOnExternalChanges="false" allowExeDefinition="MachineToApplication"/>
      <section name="imageOptimisation" type="FiftyOne.Foundation.Mobile.Configuration.ImageOptimisationSection, FiftyOne.Foundation" requirePermission="false" allowDefinition="Everywhere" restartOnExternalChanges="false" allowExeDefinition="MachineToApplication"/>
    </sectionGroup>
  </configSections>
  <fiftyOne>

    <!--<redirect> element controls how requests from mobile devices are handled.
    mobileHomePageUrl   Previously mobileRedirectUrl under the mobile/toolkit element.
                        A url to direct mobile devices to instead of the normal web sites
                        landing page. (Optional)
    firstRequestOnly    If set to true only the first request received by the web site is
                        redirected to the mobileUrl when the site is accessed from a mobile
                        device. (Optional – defaults to true)
    timeout             The number of minutes of inactivity that should occur before the
                        requesting device should be treated as making a new request to the
                        web site for the purposes of redirection. If the session is available
                        the session timeout will be used and override this value. (Optional
                        -defaults to 20 minutes)
    devicesFile            A file used to store the details of devices that have previously
                        accessed the web site to determine if they‘re making a subsequent
                        request. Needed to ensure multiple worker processes have a consistent
                        view of previous activity. (Optional – random behaviour will be
                        experienced if not specified on web sites with more than one worker
                        processes). In Windows Azure this value becomes the name of devices
                                    cloud table that will be used instead of a file.
    mobilePagesRegex    A regular expression that when applied to the current request Path
                        (context.Request.AppRelativeCurrentExecutionFilePath) or the requesting
                        Urlwill return true if it should be considered a mobile page. Use
                        this attribute to tell redirection about mobile pages derived from base
                        classes such as System.Web.UI.Page. Redirection needs to be aware of
                        mobile pages so that requests to these pages can be ignored. Any page
                        that derives from System.Web.UI.MobileControls.MobilePage will
                        automatically be treated as a mobile page irrespective of this
                        attribute. (Optional)
    originalUrlAsQueryString
                        If set to true the redirected URL will have the original requesting Url
                        encoded and included as the origUrl query string parameter in the
                        redirected Url. This will enable the mobile home page to determine the
                        original requested resource providing the option to display a mobile
                        friendly version. (Optional – defaults to false)
    locations/location  Provides details of different locations requests can be directed to based
                        on the values of defined properties associated with the device or request.
                        (Optional)
      name              A unique identifier for the location. Used for debugging in the log file.(Mandatory)
      url               the URL of the redirect location to use if all the properties in the
                        collection match. (Mandatory)
      matchExpression   can be used to provide a regular expression which will take the requesting
                        URL as input match segments to be used in place of numeric parameters contained
                        within {} in the url attribute. (Optional)
                        The location element contains a collection of criteria that all need to match
                        for the location to be used. Two attributes must be specified with each entry.
      property          the property of HttpRequest, HttpRequest.Browser or 51Degrees.mobi property to
                        use when evaluating the matchExpression attribute. (Mandatory)
      matchExpression   a regular expression used to evaluate the value of the property. (Mandatory)
                        -->

    <redirect devicesFile="" timeout="0" firstRequestOnly="true"
      originalUrlAsQueryString="true" mobileHomePageUrl="http://m.fpeach.com/"
      mobilePagesRegex="/(Mobile|Tablet)/">
      <locations>
        <clear />
        <location name="noredirect" url="" matchExpression="" enabled="true">
          <add property="Url" matchExpression="[&amp;|\?]noredirect" enabled="true" />
        </location>
        <location name="Mobile" url="http://m.fpeach.com/" matchExpression=""
          enabled="true">
          <add property="IsMobile" matchExpression="True" enabled="true" />
          <add property="IsTablet" matchExpression="True" enabled="true" />
        </location>
        <!--<location name="Tablet" url="~/Tablet/Default.aspx" matchExpression=""
          enabled="true">
          <add property="IsTablet" matchExpression="True" enabled="true" />
        </location>-->
      </locations>
    </redirect>

    <!--<log> element controls where and how much information should be recorded in the log.
    logFile   The location of the log file in ASP.NET or the name of the log table in
              Windows Azure. (Mandatory)
    logLevel  Values include Debug|Info|Warn|Fatal and control the level of information
              logged. Defaults to Fatal if not specified. (Optional)-->

    <log logFile="~/App_Data/Log.txt" logLevel="Warn"/>

    <!--<detection> element controls where the data files used are provided. If it is not present
    the embedded device data will be used. This is the default behaviour.
    If a Premium/Ultimate Data license key is present in a file with the extension .lic in the bin
    folder, or provided in the FiftyOne.Foundation.Mobile.Detection.Constants.PremiumLicenceKey
    constant the binaryFilePath attribute of the detection element must be provided and the worker
    process must have modify access to the file to enable automatic updates to be downloaded.

    enabled         Controls whether device detection is enabled. Defaults to true. (Optional)
    autoUpdate      When set to true enables automatic updating of device data when licence keys
                    are provided. Defaults to true. (Optional)
    binaryFilePath  Path to the binary data file. (Optional - Lite / Mandatory - Premium / Enterprise)
    shareUsage      Set to true to share usage information with 51Degrees.mobi. Read the Usage Data FAQ
                    to learn more. Defaults to True if not specified. (Optional)
    memoryMode      True if the data set should be loaded into memory. Detection performance will be
                    significantly faster at the expense of a longer startup time and increased memory
                    usage. Defaults to False if not specified. (Optional)
    bandwidthMonitoringEnabled  When set to true enables bandwidth monitoring. Also requires the data
                                set specified in the binaryFilePath attribute to support bandwidth
                                monitoring. Defaults to True if not specified. (Optional)
    featureDetectionEnabled     When set to true enables feature detection. Also requires the data set
                                specified in the binaryFilePath attribute to support feature detection.
                                Defaults to True if not specified. (Optional)
    -->

    <!-- IMPORTANT - Ensure this link is uncomment after purchasing Enhanced Device Data. -->
    <detection enabled="true" autoUpdate="true" binaryFilePath="~/App_Data/51Degrees.dat" />

    <!-- <imageOptimisation> elements controls the operation of the image optimiser. If not specified
    the functionality is disabled.

    enabled     Controls whether image optimisation is enabled. Defaults to true. Device detection must
                also be enabled for image optimisation. (Optional)
    factor        The request image dimensions of height and width are divided by this value and remainder
                subtracted from the requests height and width. The value can be used to limit the number
                of images that can be generated and stored in the cache. For example; a value of 50
                would result in images of width 50, 100, 150, 250, 300, etc pixels being generated.
                Optional default to 1.
    heightParam    The name used when specifying the height of the image to return.
                Optional defaults to "h"
    maxHeight      The maximum height in pixels the image optimiser is allowed to render. A value of 0
                indicates there is no maximum height. Optional defaults to 0.
    maxWidth      The maximum width in pixels the image optimiser is allowed to render. A value of 0
                indicates there is no maximum width. Optional defaults to 0.
    widthParam    The name used when specifying the width of the image to return.
                Optional defaults to "w"
      defaultAuto If an image is requested with a width or height set to "auto", the parameter will be
                        changed to the value set in ‘defaultAuto’. This is most useful for clients without
                        javascript that should still be served images, such as search crawlers.
                        Optional, defaults to 50.
    -->
    <imageOptimisation enabled="true" maxWidth="1000" maxHeight="1000"
      widthParam="w" heightParam="h" factor="1" defaultAuto="50"/>

  </fiftyOne>
</configuration>

    b. Web.config 的  <system.webServer>节点下,增加如下配置

<modules runAllManagedModulesForAllRequests="true">

      <!-- IIS 7.X - Registers 51Degrees Detector Module. Without this call to 51Degrees.core.js won‘t work.-->

      <remove name="Detector" />

      <add name="Detector" type="FiftyOne.Foundation.Mobile.Detection.DetectorModule, FiftyOne.Foundation" />

   </modules>

    增加完以上配置之后,WWW 站就可通过51degree 识别客户端的设备。PC浏览器访问,就跳转到PC站,手机浏览器访问就跳转到M站。

     需要注意的是:如果跳转的url 是带参数的,51degree 好像没有把相应的参数带过去, 只是跳到了M站的首页。可以修改51degree 的源码  

    

时间: 2024-11-06 14:08:46

移动M站建设之51Degree的相关文章

电商总结(五)移动M站建设

最近在一直在搞M站,也就是移动web站点.由于是第一次,也遇到了很多问题,所以把最近了解到的东西总结总结.聊一聊什么是移动M站,它有啥作用和优势. 也有人会问,M站和APP有什么不同? 1. APP 直接在用户的移动设备上,曝光率相对较高. 而M站需打开浏览器,输入地址才能访问,所以曝光率相对较低. 2. M站的推广的渠道相比移动APP,渠道较多,方便追踪用户来源,流量入口等,方便以后的活动推广和数据分析. 3. M站用户无需安装,输入URL即可访问,而APP需要下载安装. 4. M站能够快速的

移动M站建设

电商总结(五)移动M站建设 最近在一直在搞M站,也就是移动web站点.由于是第一次,也遇到了很多问题,所以把最近了解到的东西总结总结.聊一聊什么是移动M站,它有啥作用和优势. 也有人会问,M站和APP有什么不同? 1. APP 直接在用户的移动设备上,曝光率相对较高. 而M站需打开浏览器,输入地址才能访问,所以曝光率相对较低. 2. M站的推广的渠道相比移动APP,渠道较多,方便追踪用户来源,流量入口等,方便以后的活动推广和数据分析. 3. M站用户无需安装,输入URL即可访问,而APP需要下载

手机站建设HTML5触摸屏touch事件使用介绍

手机站建设HTML5触摸屏touch事件使用介绍技术 maybe yes 发表于2015-01-05 14:42 原文链接 : http://blog.lmlphp.com/archives/56  来自 : LMLPHP后院 市面上手机种类繁多,在触屏手机上运行的网页跟传统PC网页相比还是有很大差别的.由于设备的不同浏览器的事件的设计也不同.传统PC站的 click 和 onmouseover 等事件在一般触屏的手机上也可以使用,但是效果不够好.PC上还没有哪个事件是可以与触屏手机的触摸事件对

centos7内网源站建设

centos7内网源站建设 1.部署环境: 系统:Centos7 x86_64 应用服务:nginx.createrepo.reposync 镜像源:https://mirrors.aliyun.com/repo/epel-7.repo 2.现在阿里云镜像源repo文件到本地: [root@localhost ~] wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo 3.安装nginx服务,

乐道网站建设管理系统如何开启伪静态

乐道网站建设系统是深圳乐道网络科技基于知名CMS深度二次开发的网站建设管理系统,系统支持三种重写模式,分别不重写(动态模式).真静态(生成静态html).伪静态模式. 动态模式为普通模式,即:不使用静态,也就是URL链接不重写,直接是动态php链接: 生成真静态,就是系统会生成真实的html文件,生成的目录根据栏目的url设置自由设定: 伪静态,即开启urlrewite,系统会将链接改为静态网址模式,实际并不生成html文件,由rewrite映射到动态php地址,达到搜索引擎优化的需要: 1.开

企业建设网站有什么作用和意义——企业公司必看!!!

1,企业形象的展示与提升有利于提升企业形象企业网站的作用更类似于企业在报纸和电视上所做的宣传 企业本身及品牌的广告.不同的是,企业网站的容量较大,企业可以把任何客户想 要的信息和公众的内容放到网站上.此外,企业网站的投资比其他广告方式的投资 要低得多.随着全球化进程的加快,企业越来越多地与行业内外进行信息交流.当 时机成熟时,这种信息交流将成为一种潜在的交易.因此,行业内总会有一些展销 会和展览.在互联网上,信息的交流非常方便,非常便宜,甚至比传统方式更丰富 (如电话.传真).我们不再需要大量的

电商总结(八)如何打造一个小而精的电商网站架构

前面写过一些电商网站相关的文章,这几天有时间,就把之前写得网站架构相关的文章,总结整理一下.把以前的一些内容就连贯起来,这样也能系统的知道,一个最小的电商平台是怎么一步步搭建起来的.对以前的文章感兴趣的朋友可以看这个,http://www.cnblogs.com/zhangweizhong/category/879056.html 本文大纲: 1. 小型电商网站的架构 2. 日志与监控系统的解决方案 3. 构建数据库的主从架构 4. 基于共享存储的图片服务器架构 5. 移动M站建设 6. 系统容

如何打造一个小而精的电商网站架构?

本文大纲: 1. 小型电商网站的架构 2. 日志与监控系统的解决方案 3. 构建数据库的主从架构 4. 基于共享存储的图片服务器架构 5. 移动M站建设 6. 系统容量预估 7. 缓存系统 一.小型电商网站的架构 刚从传统软件行业进入到电商企业时,觉得电商网站没有什么技术含量,也没有什么门槛,都是一些现有的东西堆积木似的堆出来罢了.然而,真正进入到这个行业之后,才发现并非如此.有人说过,好的架构,是演化出来的,电商网站的架构也是如此.现在好的电商网站,看似很复杂,很牛逼,其实也是从很小的架构,也

兼容placeholder

众所周知.IE9以下不兼容placeholder属性,因此自己定义了一个jQuery插件placeHolder.js.以下为placeHolder.js的代码: /** * 该控件兼容IE9下面,专门针对IE9下面不支持placeholder属性所做 * Author: quranjie * Date:2014-09-26 */ $(function() { // 假设不支持placeholder,用jQuery来完毕 if(!isSupportPlaceholder()) { // 遍历全部i