java spring mobile spring

Spring Mobile

劉妍君 2019/12/26 11:17:20
664

一、前言

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可根據不同的請求設備,返回適合該設備之畫面的需求。

大家可視專案情況來選擇要使用哪種方式來返回畫面!

 

參考資料來源:https://projects.spring.io/spring-mobile/

劉妍君