●邵長遠,高春玲,李 睿
(1.大連外國語學院 圖書館,遼寧 大連 116044;2.遼寧師范大學 管理學院,遼寧 大連 116029)
在3G時代,手機已成為人們上網(wǎng)獲取信息的重要工具。據(jù)CNNIC稱,截至2011年12月底,我國手機網(wǎng)民已達3.56億。[1]根據(jù)易觀智庫《中國手機閱讀市場用戶研究報告2011》,手機閱讀已經(jīng)成為用戶使用頻次較高的移動應用,閱讀頻次每天3次以上與2~3次總占比達到59%。[2]面對用戶閱讀行為的轉變,即便圖書館擁有再豐富、再優(yōu)質的資源,若不思索新的服務模式,也必然會離用戶越來越遠。目前,特色館藏數(shù)字化工作正在如火如荼的進行著,而作為圖書館最寶貴的特色數(shù)字化資源又該如何實現(xiàn)移動閱讀呢?鑒于此,筆者設計了一個針對館藏數(shù)字資源的移動閱讀器應用系統(tǒng),通過此系統(tǒng),圖書館可以方便地發(fā)布各種格式的文檔,而用戶只需用手機上的瀏覽器打開所要閱讀的文檔的地址就可實現(xiàn)對該文檔的閱讀。由于觸摸屏手機、平板電腦已經(jīng)成為現(xiàn)今移動互聯(lián)領域主流產(chǎn)品,[3,4]本文所設計的移動閱讀軟件主要面向具有觸摸屏的手持移動終端,如iPhone、黑莓、安卓手機、iPad等,擁有觸摸屏功能的漢王等電子書閱讀器則不在本文討論范圍中。
Sencha Touch是世界上第一款基于Html5、CSS3與Javascript的應用程序開發(fā)框架,由Sencha公司以開源的形式發(fā)布,在遵循開源協(xié)議的前提下可以免費使用。從2010年6月17日公開發(fā)布第一個測試版本0.90開始,到2011年3月24日最新發(fā)布的穩(wěn)定版本1.1.0,Sencha Touch已經(jīng)歷了15個版本的升級和完善。[5]最新的Sencha Touch框架經(jīng)過高度優(yōu)化,既可以開發(fā)在線應用,也可以訪問本地存儲,用于離線開發(fā)。Sencha Touch的技術特性主要有以下幾點。[6]
(1) 基于最新的WEB標準--HTML5、CSS3、JavaScript,整個庫在壓縮和gzip后大約80KB,通過禁用一些組件還會使它更小,有利于網(wǎng)絡傳輸,節(jié)省流量。
(2) 支持世界上最好的設備,1.1版兼容蘋果IOS 3+、Google Android 2.1+、BlackBerry 6+和其他安裝了基于WebKit內核瀏覽器(Firefox除外) 的設備,基本涵蓋了主流手持移動設備。
(3) 增強的觸摸事件,在touchstart、touchend等標準事件的基礎上,增加了一組自定義事件數(shù)據(jù)集成,如 tap(單擊)、double tap(雙擊)、swipe(劃屏)、tap and hold(拖放)、pinch(捻)、rotate(選擇),豐富的觸摸事件支持,為開發(fā)較佳用戶體驗的應用程序提供了基礎。
(4)數(shù)據(jù)集成,提供了強大的數(shù)據(jù)包,通過A-jax、JSONp、YQL等方式綁定到組件模板,寫入本地離線存儲。數(shù)據(jù)集成有利于實現(xiàn)表現(xiàn)層與數(shù)據(jù)層的邏輯分離,為同時支持線上操作與離線操作的網(wǎng)絡應用程序開發(fā)提供了便利。
由于目前對屏幕觸控技術支持得比較好的手持移動終端主要有蘋果的iPhone、iPad,黑莓和基于Andriod的品牌手機機型,筆者選擇以iPhone和iPad作為測試對象。本閱讀器從本質上講是一個B/S應用,其中Sencha Touch技術用于開發(fā)前端表現(xiàn)層,采取Json格式傳輸每一頁文檔數(shù)據(jù),頁數(shù)據(jù)量一般只有幾KB。后端則由 LAMP (Linux+Apache+Mysql+PHP)或WAMP(W表示windows系列操作系統(tǒng)) 提供支持。本閱讀器系統(tǒng)架構圖見圖1。
圖1 基于Sencha Touch的移動閱讀器系統(tǒng)架構
圖書館的數(shù)字資源格式不一,為了支持多種格式文檔的無差異閱讀,程序后端需要屏蔽文檔格式的復雜性,將各種格式的文檔自動轉換成標準格式文檔,為前端用戶的交互操作提供數(shù)據(jù)支持及業(yè)務邏輯支持。后端設計核心主要包括三個模塊:數(shù)據(jù)庫模塊,文檔處理模塊和文件管理模塊。各模塊內聚性較高,模塊間耦合性較低,便于后續(xù)開發(fā)和升級。
3.1.1 數(shù)據(jù)庫模塊
因本文設計的閱讀器尚處于探索和實驗階段,數(shù)據(jù)庫使用單表結構。數(shù)據(jù)庫僅用于存儲文檔在服務器上的位置信息等,并未為優(yōu)化效率將前端所需閱讀數(shù)據(jù)存入數(shù)據(jù)庫,但已保留相應擴展字段。數(shù)據(jù)庫結構如下。
(1) id:本表主鍵(primary key),用于唯一標識表中的某一條記錄;字段類型,Int 4。(2) Title:用于存儲文檔的題名信息;字段類型,varchar(255)。(3)Desc:用于存儲文檔的摘要信息,做全文檢索處理;字段類型,longtext。(4) FileURI:用于存儲文檔文件在服務器上的位置;字段類型,varchar(500)。(5) ReadData:用于緩存系統(tǒng)已轉換過的數(shù)據(jù),現(xiàn)階段程序中未啟用;字段類型,longtext。(6) IsReady:用于標識某文檔是否已經(jīng)轉換過,現(xiàn)階段程序中未啟用;字段類型,Bool。
3.1.2 文檔處理模塊
此模塊主要用于文檔標準化,即將各類文檔轉換為本閱讀器可直接使用的數(shù)據(jù)類型。本程序選擇PDF作為統(tǒng)一的文檔格式,也就是說,當其他格式的文檔提交至服務器后,先經(jīng)由相應步驟將其轉換為PDF文件。此步驟筆者借由PHP腳本驅動Openoffice的文檔轉換模塊來完成,可支持較廣泛的文檔格式,腳本命名為All2Pdf.php。在文檔處理流程中,使用了大多數(shù)流行軟件都在采用的開源PDF操作庫XPDF對其進行解析。通過XPDF解析PDF文檔,獲取相應的標簽與數(shù)據(jù)流之后,再對照PDF官方標簽描述手冊,將標簽與數(shù)據(jù)流轉換為Web可渲染的布局標簽及數(shù)據(jù),并封裝為Sencha Touch支持的JSON格式。此步驟要求高效率且要能夠與XPDF庫無縫集成,故采用C語言編碼,合并XPDF庫的源碼后,將此模塊封裝為PHP擴展庫以供Web服務器調用,此擴展模塊命名為Pdf2Mobile。文檔處理流程圖見圖2。
圖2 文檔處理流程
3.1.3 文件管理模塊
本模塊主要用于管理員登錄認證,管理員對服務器端的文件進行添加、修改、更名、刪除,以及管理員對數(shù)據(jù)庫的備份和恢復等操作。
前端包含管理員前端與文獻閱讀前端兩個部分。文獻閱讀前端使用Sencha Touch技術開發(fā),針對手持移動互聯(lián)設備提供優(yōu)化UI。由于管理員前端不針對手持觸摸設備,管理員用戶通過普通PC瀏覽器進行服務器端文件管理。因此,本小節(jié)中,筆者只討論基于Sencha Touch的文獻閱讀前端設計。
3.2.1 設計思路
為了獲得良好的用戶體驗,文獻閱讀前端需根據(jù)手持設備的不同類型提供不同布局的閱讀界面,且需要提供合適的觸摸事件和順暢簡潔的切換效果。筆者嘗試通過Sencha Touch技術將web和客戶端閱讀方式的優(yōu)勢有機結合,力求為用戶提供一個支持多點觸控、多種文件格式文檔閱讀、自適應布局、節(jié)省流量的移動閱讀器。
3.2.2 設計界面
觸摸屏手機與平板電腦均具有豎屏式與橫屏式操作界面,支持重力感應切換或手動切換。因無法預測用戶閱讀時使用的界面,程序需具有設備偵測能力,能夠獲取用戶的閱讀環(huán)境,并針對不同閱讀環(huán)境提供不同的閱讀視圖。由于iPhone和iPad為目前對多點觸控技術支持得最好的兩種移動設備,筆者以此二者為測試對象,設計了手機豎屏式視圖、手機橫屏式視圖、平板電腦橫屏式視圖等種類的閱讀視圖,以方便用戶不同操作。
本程序的重點部分在于文獻閱讀前端的UI設計,該部分代碼利用Sencha Touch技術開發(fā)完成。程序所用組件都是Sencha Touch框架的內置組件,如頂部工具欄為Ext包中的Toolbar組件,設置其Dock屬性為Top。章節(jié)目錄面板為置于Panel容器內的List組件。Sencha Touch提供了一個Ext.Application的類,該類有一個profiles屬性,支持多個預置profile事件綁定,可用來偵聽用戶閱讀環(huán)境的改變,因此,只需再創(chuàng)建一個布局適配器,為不同的profile構造不同的布局即可實現(xiàn)布局自動切換。該功能實現(xiàn)關鍵代碼如下:
本程序在Iphone手機和ipad上進行了實測。程序自動隱藏了瀏覽器的地址欄,實現(xiàn)了用戶閱讀空間的最大化,并能夠響應重力反應,自動更改控件布局,對觸摸操作反應靈活,頁面加載速度尚可,基本達到既定設計目標。本程序測試地址為∶http∶//lib.dlufl.edu.cn/bk1/。鑒于程序使用了較新的技術標準Html5與CSS3,故測試時最好使用相應移動終端設備,也可通過Chrome與safari瀏覽器進行訪問測試,否則頁面將無法準確渲染。
筆者基于Sencha Touch技術設計并實現(xiàn)了一個移動閱讀器系統(tǒng),圖書館可利用此系統(tǒng)方便地開展館藏數(shù)字資源的移動閱讀服務。作為探索性項目,此閱讀器在系統(tǒng)構建方面仍有很多不足,如對終端設備要求高、支持文檔格式僅限于Openoffice可識別的文檔格式等,如何解決好這些問題值得我們進一步去思考和研究。
[1]CNNIC.第29次中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告[EB/OL].[2012-04-10].http∶//www.cnnic.cn/research/bgxz/tjbg/201201/t20120116_23668.html
[2]易觀智庫.中國手機閱讀市場用戶研究報告2011[EB/OL]. [2011-11-05].http∶//www.enfodesk.com/SMinisite/webinfo/.
[3]分析師預測iPhone明年銷量有望升至1.07億部[EB/OL].[2011-11-05].http∶//tech.163.com/11/1004/09/7FGRLGMT000915BE.html.
[4] More Than 100Million Handsets with Touch Screens to Ship in 2008[EB/OL].[2011-11-05].http∶//www.abiresearch.com/press/942-More+Than+100+Million+Hand sets+with+Touch+Screens+to+Ship+in+2008.
[5] Release Notes for Sencha Touch1.1.0[EB/OL].[2011-11-05].http∶//dev.sencha.com/deploy/touch/releasenotes.html.
[6] Sencha Touch Mobile JavaScript Framework[EB/OL].[2011-11-05].http∶//www.sencha.com/products/touch/.