Spring Mobile
一、前言
Spring Mobile是Spring MVC的擴充套件,是用來探測客戶端設備和系統,例如:手機、平板、還是正常的PC網站。它的主要的目的就是簡化手機web應用的開發。
主要特點是:
- 在服務端辨識發起請求的設備,為手機或平板等。
- 根據不同的請求設備,返回適合該設備之畫面。
- 裝置感知檢視管理,在設定檔中配置後,讓代理解析器解析發起請求的設備,並自動返回適合該設備之畫面。
二、實作:
裝置檢測
首先,在pom檔中引入Spring Mobile
接下來在config檔中新增以下配置,以啟用裝置檢測
便可在controller中,將設備注入控制器,它會攔截到應用的請求,並判斷請求是否來自瀏覽器(桌面)“正常-normal”、手機“移動-mobile”、還是平板“平板電腦-tablet”。
為方便測試,使用瀏覽器的調試功能F12,模擬不同的前端設備類型。首先使用一般瀏覽器
模擬iPhone裝置,確認可以正確捕獲到前端的設備類型
模擬平板裝置,也確認可以正確捕獲到前端的設備類型
網站偏好
接下來在config檔中新增以下配置,以啟用網站偏好管理
SitePreferenceHandlerInterceptor會利用探測到的設備,來判斷用戶的初始站點偏好,而站點偏好是通過請求中特殊的查詢字符串設置的。
與前面一樣,模擬不同的前端設備類型。首先使用一般瀏覽器
模擬手機裝置,確認可以正確捕獲到前端的設備類型
模擬平板裝置,也確認可以正確捕獲到前端的設備類型
視圖代理解析功能
Spring Mobile還提供了視圖代理解析功能,可能針對不同的設備做不同的適配頁面,而我們只需要在applicaton.properties中配置即可。
首先,先將代理解析器打開,並配置不同設備類型的前缀和後缀。
在這裡我們設定只設定前綴即可,前缀手機類型為/mobile,平板類型的是/tablet。而瀏覽器没有前缀。
接下來將相對應的view放在目錄中:
然後設定好controller
再次模擬不同裝置,會發現3個不同的設備會訪問不同的頁面
三、結論:
以上三種方法,皆可達成Spring Mobile可根據不同的請求設備,返回適合該設備之畫面的需求。
大家可視專案情況來選擇要使用哪種方式來返回畫面!