【基于HTML5微信公眾號的設(shè)計與實現(xiàn)7500字(論文)】_第1頁
【基于HTML5微信公眾號的設(shè)計與實現(xiàn)7500字(論文)】_第2頁
【基于HTML5微信公眾號的設(shè)計與實現(xiàn)7500字(論文)】_第3頁
【基于HTML5微信公眾號的設(shè)計與實現(xiàn)7500字(論文)】_第4頁
【基于HTML5微信公眾號的設(shè)計與實現(xiàn)7500字(論文)】_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基于HTML5微信公眾號的設(shè)計與實現(xiàn)摘要:隨著4G網(wǎng)絡(luò)的大規(guī)模應(yīng)用,移動互聯(lián)時代的到來改變了人們的上網(wǎng)方式。傳統(tǒng)的網(wǎng)站在移動端的不便利性也越來越明顯,新一代的萬維網(wǎng)核心語言HTML5,實現(xiàn)了新的超文本標記語言,可以多設(shè)備的跨平臺使用,加上目前國內(nèi)智能手機的迅速普及和政府對于4G網(wǎng)絡(luò)的大力推廣,也為HTML5在國內(nèi)開發(fā)者的使用上提供了一個良好的發(fā)展環(huán)境。微信公眾號利用HTML5的新技術(shù)特性來開發(fā)具有很好的實踐意義,今后隨著移動互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,能夠開發(fā)出用戶體驗更好和客戶端安全性更高的微網(wǎng)站。關(guān)鍵詞:微信公眾號;HTML5;移動互聯(lián)網(wǎng)目錄TOC\o"1-3"\h\u1.緒論 11.1研究背景及意義 11.2HTML5簡介 21.2.1文件緩存 21.2.2Drag&Drop直接拖拽功能 21.2.3Canvas圖形繪制 31.2.4Audio/Video標簽 32.需求分析 32.1數(shù)據(jù)通信子系統(tǒng) 32.2消息處理模塊庫 32.3粉絲行為收集子系統(tǒng) 43.系統(tǒng)設(shè)計 43.1HTML5推送客戶端設(shè)計 43.2消息處理模塊庫的設(shè)計 53.3微站可視化編輯子系統(tǒng)的設(shè)計 63.4數(shù)據(jù)通信子系統(tǒng)的設(shè)計 64.系統(tǒng)實現(xiàn) 84.1通信錄樹狀結(jié)構(gòu)實現(xiàn) 84.2二維碼生成技術(shù) 94.3個性化模塊 9總結(jié) 101.緒論1.1研究背景及意義微信公共平臺于2012年8月23日正式上線,這是基于微信的一個附加功能,任何組織或個人均可免費申請微信公眾帳號。獲得帳號后可通過后臺編輯文字、圖片、語音、視頻等信息,并群發(fā)給關(guān)注該帳號的用戶,但每天僅可群發(fā)一次。同樣地,用戶主動給微信公眾平臺發(fā)送文字、圖片、語音、視頻等信息,公眾平臺可以根據(jù)預(yù)先設(shè)定好的規(guī)則,自動反饋相應(yīng)的信息給用戶林江,俞宙,肖然.基于HTML5打造廣東天氣微信微門戶[J].廣東氣象,2014,03:71-73.林江,俞宙,肖然.基于HTML5打造廣東天氣微信微門戶[J].廣東氣象,2014,03:71-73.基于HTML5微信公眾平臺,豐富了原有編輯平臺的功能,可以使接入公眾賬號瞬間擁有十分強大的功能?;贖TML5的微信公眾平臺設(shè)計與實現(xiàn)的意義在于以下幾個方面:一是對于微信公眾賬號的運營者。對那些不懂計算機程序技術(shù)的運營者可以建立屬于自己的程序接口,讓他們通過簡單的配置,即可擁有強大而又個性化的微信公眾平臺管理系統(tǒng)。使運營者可以專注于內(nèi)容的運營,而不被如何呈現(xiàn)內(nèi)容的方式而分心。相反地,該HTML5還可以輔助運營者,以更佳的方式方法呈現(xiàn)運營者發(fā)布的內(nèi)容,用一些程序小工具維系訂閱用戶的粘度。另一方面,對于微信公眾賬號的訂閱者。通過關(guān)注接入了微信公眾平臺HTML5的公眾號,可以獲得比一般公眾賬號更多的功能,諸如天氣查詢、列車查詢、微網(wǎng)站等??梢允沟糜脩魧@樣的公眾賬號有著更好的用戶體驗,使用戶更加樂于使用這們的公眾賬號。再者,對于微信公眾平臺本身來說,開發(fā)這樣的HTML5,豐富和加強了微信公眾平臺本身的功能,擴展了微信公眾平臺的生態(tài)鏈。從另一個角度來看,也可以促進微信公眾平臺自身功能的擴展。1.2HTML5簡介 HTML5取代了HTML4.0和XHTML1.0標準,是更為適應(yīng)互聯(lián)網(wǎng)近幾年飛速發(fā)展的需要的技術(shù)。HTML5的技術(shù)開發(fā)主要包括HTML5、JavaScript和CSS3.0技術(shù),也就是說HTML5標準包含了以上者三種技術(shù)。它能夠有效簡化瀏覽器處理由不同公司研發(fā)的富互聯(lián)網(wǎng)應(yīng)用程序方式(如AdobeFlash、MicrosoftSilverlight)的解析過程林江,俞宙,肖然.基于HTML5打造廣東天氣微信微門戶[J].廣東氣象,2014,03:71-73.林江,俞宙,肖然.基于HTML5打造廣東天氣微信微門戶[J].廣東氣象,2014,03:71-73.新版本的HTML搭載了新的網(wǎng)頁元素、行為與屬性,主要為以瀏覽器為基礎(chǔ)的互聯(lián)網(wǎng)新體驗?zāi)J?,例如使?lt;VIDEO>標簽和<AUDIO>標簽,不需要安裝插件就能在瀏覽器中瀏覽多媒體內(nèi)容;同時HTML5也摒棄了HTML4標準中的部分內(nèi)容,如<font>標簽,這部分功能由CSS3.0代替。除此之外,HTML5標準還支持富互聯(lián)網(wǎng)應(yīng)用程序的開發(fā),比如及時二維繪圖、本地離線存儲、控件拖拽和歷史記錄功能等。HTML5不僅僅是HTML4版本的全面升級,更是20年來互聯(lián)網(wǎng)技術(shù)的一次巨大飛躍。它使web應(yīng)用更加成熟化、平臺化,潛移默化中改變著互聯(lián)網(wǎng)的使用模式。我的工作運用了HTML5的文件緩存、網(wǎng)頁內(nèi)拖拽、地理信息共享、Canvas圖形繪制等相關(guān)技術(shù)。下面對這些技術(shù)的應(yīng)用進行相關(guān)介紹。1.2.1文件緩存文件緩存功能能夠為用戶儲存瀏覽器中的瀏覽資料,使其在斷網(wǎng)或離線的情況下仍然能夠正常瀏覽網(wǎng)頁。對于移動產(chǎn)品特別是iPad平板電腦上的網(wǎng)頁應(yīng)用程序的開發(fā)來說這項技術(shù)特別重要。在產(chǎn)品演示系統(tǒng)的開發(fā)中,真用戶在移動平臺上使用產(chǎn)品演示系統(tǒng)時經(jīng)常出現(xiàn)的網(wǎng)絡(luò)不通暢、掉線和用戶的誤操作等突發(fā)狀況,這些不能由傳統(tǒng)HTML靜態(tài)網(wǎng)頁解決。但是我們利用HTML5的文件緩存功能,能夠在任何臨時情況下使用產(chǎn)品演示系統(tǒng),通過瀏覽器緩存瀏覽演示Demo,實現(xiàn)用戶實現(xiàn)無障礙瀏覽。1.2.2Drag&Drop直接拖拽功能HTML5新增了DragStart和DragEnd事件,能夠?qū)崿F(xiàn)開發(fā)者在網(wǎng)頁中的拖拽事件功能,此外,通過拖拽事件,用戶能夠把本地文件拖拽入網(wǎng)頁中。最初,這項技術(shù)是針對在桌面上進行的鼠標操作而設(shè)計的。但是其本身卻不能在iPad中運用,為了實現(xiàn)用手指隨意移動拖拽網(wǎng)頁內(nèi)控件的功能,同時現(xiàn)有的資源庫中缺少能夠同時兼容iPad和鼠標操作的類。我們在產(chǎn)品演示系統(tǒng)中增加了onTouchEvent等支持捕獲手指位置及狀態(tài)的類的程序編寫,并且做到了桌面上進行鼠標操作的兼容支持。這項新增功能便于用戶實現(xiàn)的演示Demo中對于視頻、音頻的處理操作。1.2.3Canvas圖形繪制使用Canvas標簽不僅能輕松實現(xiàn)網(wǎng)頁的控制或修改圖像,也給網(wǎng)頁中的動畫開發(fā)提供了條件。這種操作方法是以像素為基礎(chǔ)的,配合JavaScript代碼,不需要安裝任何插件即可達到當前僅在Flash或Silverlight中才能實現(xiàn)的效果。在產(chǎn)品演示系統(tǒng)中,Canvas標簽是不可或缺的工具,它能夠?qū)崿F(xiàn)在不同場景間演示Demo的模擬和擴展,比如顯示動畫、創(chuàng)建復(fù)雜控件等。比如說,我們在iPad平板電腦中利用Canvas畫布實現(xiàn)了CoverFlow效果的模擬,而現(xiàn)有的大部分CoverFlow模擬程序都是以Flash技術(shù)為基礎(chǔ)的,而這一類的控件無法在iPad平板電腦中使用。此外,本課題還通過Canvas技術(shù)對網(wǎng)頁內(nèi)多媒體播放進行多元化效果控制,一個創(chuàng)新的、動態(tài)的演示系統(tǒng)能夠有效吸引用戶使用產(chǎn)品演示系統(tǒng),因此在對于升級與開發(fā)產(chǎn)品演示系統(tǒng)的時候,Canvas技術(shù)可以用來解決更為復(fù)雜的應(yīng)用問題。1.2.4Audio/Video標簽在HTML5網(wǎng)頁中只需要加入<AUDIO>/<VIDEO>標簽并使用JavaScript代碼開發(fā)操作面板就能夠在網(wǎng)頁中靈活播放多媒體,而無需安裝插件播放音頻或視頻多媒體文件,而同時利用Canvas技術(shù)對多媒體文件進行效果控制。因為公司很多宣傳靠視頻手段,所以在產(chǎn)品演示系統(tǒng)的演示Demo場景中也存在大量用于用戶租住瀏覽的視頻文件。通過同時使用這兩個標簽,使在iPadSafari中直接瀏覽視頻成為了可能,而無需再在系統(tǒng)升級時安裝瀏覽器插件。此外,我們利用Audio標簽研制了嵌入演示Demo中的語音向?qū)K,這不僅引起了潛在用戶群對于產(chǎn)品演示系統(tǒng)的興趣、同時也使演示Demo所要表現(xiàn)的內(nèi)容更為清晰??梢哉f,如果沒有這兩項功能,就無法實現(xiàn)在iPad上開發(fā)產(chǎn)品演示系統(tǒng)。2.需求分析本系統(tǒng)程序在.DIETFramework4.0框架下開發(fā),數(shù)據(jù)庫采用SQLServer2005,使用C#編程語言,頁面依照HTML5標準開發(fā)設(shè)計,并將客戶端綁定到學校的微信公眾平臺,學員通過手機訪問應(yīng)用程序。2.1數(shù)據(jù)通信子系統(tǒng)數(shù)據(jù)通信子系統(tǒng)是本文所開發(fā)的基于微信公眾平臺的自助管理的基礎(chǔ)。用戶對系統(tǒng)進行授權(quán),即輸入微信公眾帳號的用戶名和密碼,數(shù)據(jù)通信子系統(tǒng)能夠獲取到微信公眾帳號的信息,包括二維碼、頭像、帳號屬性等,如果帳號為服務(wù)號,還能獲取到它的自定義菜單列表。其次,數(shù)據(jù)通信子系統(tǒng)應(yīng)還具備微信后臺數(shù)據(jù)的解析和系統(tǒng)用戶數(shù)據(jù)的封裝的功能。通過消息路由,即粉絲用戶經(jīng)公眾平臺發(fā)送內(nèi)容至本系統(tǒng),本系統(tǒng)查找對應(yīng)的規(guī)則記錄,并將消息分配至合適的模塊處理的過程,用戶可以實現(xiàn)綁定公眾帳號,并且能夠在微信后臺、公眾帳號和公眾帳號粉絲之間的通信謝遠超.微信公眾號信息服務(wù)平臺的設(shè)計與實現(xiàn)[D].中山大學,2014.謝遠超.微信公眾號信息服務(wù)平臺的設(shè)計與實現(xiàn)[D].中山大學,2014.2.2消息處理模塊庫系統(tǒng)通過功能模塊使得用戶使得用戶不需要通過編碼,只需要對消息處理模塊進行簡單的規(guī)則編輯操作就可以構(gòu)建一個功能完整的微信公眾賬號后臺。通過對微信公眾平臺的功能使用情況進行分析,將系統(tǒng)的功能性需求進行歸納和分類,最終確定本文需要開發(fā)的消息處理模塊類型。如對訪客消息的自動回復(fù),包括基本文字、混合圖文和語音回復(fù)等。表3-3列出本文開發(fā)的微信公眾號信息服務(wù)平臺的部分關(guān)鍵模塊。每一個模塊都對應(yīng)處理不同的消息事件類型。2.3粉絲行為收集子系統(tǒng)為了更好的了解到粉絲,應(yīng)將有意義的粉絲行為數(shù)據(jù)收集起來。本文所設(shè)計的系統(tǒng)收集的粉絲行為數(shù)據(jù)主要有兩點:1.粉絲個人信息的統(tǒng)計,包括粉絲的姓名,昵稱,生日和所在城市等信息;2.是粉絲與公眾帳號后臺發(fā)生的交互數(shù)據(jù),包括聊天記錄,規(guī)則觸發(fā)率和關(guān)鍵字使用率。對于規(guī)則觸發(fā)率和關(guān)鍵詞使用率因提供直觀的折線圖,來清晰的表示每一個規(guī)則和關(guān)鍵字的使用率走勢。3.系統(tǒng)設(shè)計3.1HTML5推送客戶端設(shè)計經(jīng)過之前的設(shè)計與實現(xiàn),HTMLS推送客戶端可以通過PhoneGap中間件及安卓插件完成跨平臺安裝與運行。HTMLS推送客戶端的實現(xiàn)可以細化為連接服務(wù)器、同步推送類型、設(shè)備控制、消息接收和消息呈現(xiàn)五大塊。推送客戶端連接服務(wù)器功能實現(xiàn)時,通過監(jiān)聽頁面上對連接按鈕的點擊監(jiān)聽事件,然后新建一個webSocket對象,連接url的協(xié)議類型使用ws或wss協(xié)議,形式如ws://54:8080/PushServer/reg的形式。這個對象成功創(chuàng)建則表示連接服務(wù)器成功方毓偈.基于微信公眾平臺的手機營業(yè)廳應(yīng)用構(gòu)架的設(shè)計與實現(xiàn)[D].蘭州大學,2015.方毓偈.基于微信公眾平臺的手機營業(yè)廳應(yīng)用構(gòu)架的設(shè)計與實現(xiàn)[D].蘭州大學,2015.在連接完成后,通過覆寫webSocket.onmessage來實現(xiàn)消息接收,當有消息到達時,由底層通過層層回調(diào),執(zhí)行這個方法中的邏輯。同樣地,onopen,onclose,onerror這幾個方法也需要被覆寫,只不過覆寫的代碼中不執(zhí)行任何額外動作。在onmessage中執(zhí)行消息呈現(xiàn)的相關(guān)邏輯,消息呈現(xiàn)時,一般使用文件對象模型,解析出事件對象event中data域?qū)?yīng)的值,解析出其中的數(shù)據(jù)域,對其進行一定的運算與統(tǒng)計,然后根據(jù)推送來數(shù)據(jù)的類型對展示的頁面中元素進行實時更新。當連接剛建立時,服務(wù)器端并不會對移動客戶端進行任何消息推送,直到客戶端主動通知推送服務(wù)器其所希望接收的消息類型。推送客戶端通過文件對象模型,調(diào)用其document.getElementById('Types').innerHTML,獲取頁面上id標識符為“Types”的輸入框中用戶輸入的類型信息,對其通過正則表達式進行格式絲測,確保其符合“TYPE1;TYPE2;TYPES”的這種使用分號作為分隔符的形式,然后對其加上前綴“TYPES:”,再調(diào)用websocket的send發(fā)送方法將經(jīng)過處理的類型信息發(fā)送給服務(wù)器端進行注冊。在某些情況下,移動終端也可以以控制信息發(fā)起者的形式作為推送服務(wù)器的數(shù)據(jù)源。這時,推送客戶端通過文件對象模型,使用與之前描述類似的方式,分別得到控制目標TARGET與控制量VALUE,然后通過字符串拼接的方式,按照“CONTROL:TARGET:dataTypel;valuel:dataType2;value2”的方式組建控制指令,再調(diào)用websocket的send發(fā)送方法將經(jīng)過處理的類型信息發(fā)送給服務(wù)器端,由服務(wù)器端進行進一步處理和下發(fā)控制。3.2消息處理模塊庫的設(shè)計消息處理模塊庫是本文所設(shè)計的微信公眾號信息服務(wù)平臺的關(guān)鍵。消息處理模塊負責對微信后臺發(fā)送過來的消息進行處理邏輯上的封裝。消息處理模塊需要和數(shù)據(jù)通信子系統(tǒng)和消息回復(fù)規(guī)則進行通信和交互,一條消息回復(fù)規(guī)則可以由多個關(guān)鍵詞觸發(fā),然后選擇到一個處理模塊進行處理。每個模塊的處理流程都是一樣的,所以本文設(shè)計了一個消息處理模塊的對象模型,下面將詳細分析其架構(gòu)設(shè)計。每一個消息處理模塊都可以由四個部分組成:1.面向本文所設(shè)計的微信公眾號信息服務(wù)平臺的接口;2.接收來自數(shù)據(jù)通信子系統(tǒng)的消息包,并解析他們存入數(shù)據(jù)庫;3.處理接收到的數(shù)據(jù),封裝響應(yīng)的處理邏輯;4.如果模塊可以由粉絲用戶進行交互,還需要有模塊微站。具體過程如圖3-1所示:圖3-1消息處理模塊庫設(shè)計3.3微站可視化編輯子系統(tǒng)的設(shè)計如圖3-2所示為微站可視化編輯子系統(tǒng)的總體設(shè)計,其中主題風格庫是設(shè)備模擬器和微站屬性管理工具的基礎(chǔ)模塊,用戶在風格庫中選擇所需主題風格,選擇后微站數(shù)據(jù)會提供給設(shè)備模擬器進行可視化呈現(xiàn)。當用戶對微站導航才進行添加、刪除等操作時,微站屬性相應(yīng)進行改變,同時設(shè)備模擬器也給予實時的預(yù)覽效果。當用戶需要對微站進行屬性修改操作時,微站屬性管理工具將微站屬性實時地保存到數(shù)據(jù)庫中。設(shè)定微站好入口,微信客戶端可以通過入口訪問到微站。圖3-2微站可視化編輯子系統(tǒng)設(shè)計3.4數(shù)據(jù)通信子系統(tǒng)的設(shè)計數(shù)據(jù)通信子系統(tǒng)主要利用微信后臺提供的API進行微信后臺與本文所設(shè)計的信息服務(wù)平臺進行通信。數(shù)據(jù)通信子系統(tǒng)兩個部分組成,第一部分是和微信后臺進行Token驗證。第二部分是對數(shù)據(jù)的解析和再封裝。Token驗證的過程分成兩個步驟:1.微信后臺在發(fā)送數(shù)據(jù)的時候,會額外的帶上三個參數(shù):signature,noce和timestamp。其中timestamp是時間戳,noce是一個隨機生成的數(shù)。signature是將Token,noce和timestamp進行不可逆的SHA1加密后生成的字符串;2.接收到微信后臺發(fā)送過來的三個參數(shù)之后,同樣對Token,timestamp和noce進行SHA1機密,如果得到的字符串和發(fā)送過來的signature一樣的話,驗證就通過了,此時就可以和微信后臺進行數(shù)據(jù)通信。由于本文所設(shè)計的系統(tǒng)使用PHP腳本語言,PHP的數(shù)組和XML之間能很好的進行轉(zhuǎn)換。所以本文對所有的消息進行重新封裝。將消息的基本對象結(jié)構(gòu)定義為如表4-1所示:模塊處理平臺消息設(shè)置項<platform><subscribes><messagetype="text"/><messagetype="image"/>…<messagetype="click"/></subscribes><handles><messagetype="image"/><messagetype="voice"/>…<messagetype="text"/></handles><ruleembed="true"/></platform>模塊處理腳本設(shè)置項<install><![CDATA[安裝腳本]]></install><uninstall><![CDATA[卸載腳本]]></uninstall><upgrade><![CDATA[升級腳本]]></upgrade>消息訂閱器提供了一種處理公眾平臺消息的方式,可以接受到指定類型的消息,來進行分析和統(tǒng)計,不能用以處理消息返回結(jié)果.這種處理是并行的,同一個消息會被每一個訂閱它的模塊接收到。消息處理器用于接收公眾平臺的消息,并返回相應(yīng)的處理結(jié)果.這種處理是互斥的,同一個消息只能從一個模塊返回處理結(jié)果。4.系統(tǒng)實現(xiàn)4.1通信錄樹狀結(jié)構(gòu)實現(xiàn)通信錄形成的樹狀數(shù)據(jù)結(jié)構(gòu)本身是一個n叉樹的樹狀,只能用遞歸結(jié)構(gòu)來處理。在數(shù)據(jù)庫中,通信錄分為2個表,其一是部門表——organisation表,其二是人員表——companyMember表,companyMember表的人員依賴于organisation表中的單位樹來顯示。通過查找系統(tǒng)中類似模塊的實現(xiàn),發(fā)現(xiàn)PHPCMS系統(tǒng)中內(nèi)置了一個tree的類,因此組織架構(gòu)中的樹形結(jié)構(gòu)顯示即采用了系統(tǒng)內(nèi)置的tree類來輔助實現(xiàn)。在companyMember表的顯示中,由于列表過長,采用了Ajax的方法來模擬實現(xiàn),基本過程是:在companyMember表的顯示中,由于列表過長,采用了Ajax的方法來模擬實現(xiàn),基本過程是:列表初始化時,通過數(shù)據(jù)庫查找顯示parentid為0的單位和單位id為0人員。有人點擊列表中單位時,JavaScript通過Ajax請求獲取該單位的下級單位和人員列表,JavaScript獲取到XML數(shù)據(jù)之后顯示出來。因此在companyMember表中顯示,不是真正的樹狀結(jié)構(gòu)顯示,但是采用Ajax動態(tài)顯示,動態(tài)展開,用戶界面顯得更加友好。為了在顯示單位列表時能夠準確判斷一個單位的下級單位列表是否展開,本文為單位列表的節(jié)點增加了一個HTML標記語言中沒有的屬性expand=”true/false”,并結(jié)合jQuery庫進行查找。雖然樹狀目錄顯示的過程很簡單,如何高效的收縮樹狀目錄沒有現(xiàn)成的解決辦法。觀察樹狀菜單,可以發(fā)現(xiàn)某個被展開的節(jié)點A之下的結(jié)點B會具有以下特征:假設(shè)節(jié)點的深度屬性為level。如果某節(jié)點B是A的子孫系節(jié)點,則B.level>A.level。如果某節(jié)點B是A的兄弟節(jié)點或父級的兄弟節(jié)點,則B.level<=A.level。如果該節(jié)點B不是A的子孫節(jié)點,而B.level>A.level,那么節(jié)點B與A之間肯定存在節(jié)點C.level>=A.level的C節(jié)點。因此要收縮節(jié)點A的子節(jié)點,只需要查找節(jié)點A之下所有深度level大于A的節(jié)點并刪除即可,直到某個節(jié)點的深度小于或等于A的深度。由此,樹狀目錄收縮的JavaScript基本代碼如下:/*$("#"+id)代表查找獲取HTML屬性id值為變量id的節(jié)點*/if($("#"+id).attr("expanded")=="false"){/*菜單展開,調(diào)用AJAX完成*/AJAX_Method;}else{/*菜單收縮*/varthisLevel=$("#"+id).attr("level");varnextTr=$("#"+id).next();while(nextTr.attr("level")>thisLevel){vartempnode=nextTr;nextTr=nextTr.next()tempnode.remove();}$("#"+id).attr("expanded","false");}4.2二維碼生成技術(shù)二維條碼/二維碼是條形碼的一種,用按一定規(guī)律在一定平面區(qū)間內(nèi)分布的黑白相間的方塊圖形符號,實現(xiàn)信息的記錄與傳遞。到80年代末為止,世界上已經(jīng)有多種二維碼實現(xiàn)方法,包括CodeOne、PDF417、Code16K、QRCode、Code49等許多種。與一維條碼相比,二維碼的信息容量較大,能夠記錄和傳遞更多的信息。QR碼是二維條碼中比較常見的一種。1994年日本DensoWave公司為了實現(xiàn)其公司汽車零部件的流程記錄,設(shè)計了一種新型二維碼[23],即QR碼。QR碼的“QR”是QuickResponse的縮寫。在最大密度模式下,QR碼最多可以存儲7089個數(shù)字,4296個英文字母或者1817個漢字字符。因此,QR碼很適合傳遞一些有一定長度的文字信息。由于操作方式的不同,在移動設(shè)備上輸入復(fù)雜的網(wǎng)址不太方便,二維碼的出現(xiàn)剛好解決了這一問題。二維碼可以通過印刷分發(fā),又可以被手機攝像頭輕易識別,手機本身體積小,握持方便,又方便了以各種角度對焦拍攝,因此被手機的移動操作系統(tǒng)和各種手機瀏覽器廣泛支持。目前,PHP網(wǎng)站中,生成QR碼主流的做法有以下2種方式:一是利用internet上的一些網(wǎng)站提供的QRcode應(yīng)用程序接口來獲得二維碼。例如Google公司就對外發(fā)布了一個二維碼生成產(chǎn)品,供各類網(wǎng)絡(luò)用戶使用。缺點是受Google公司限制,如果無法正常訪問Google公司的網(wǎng)絡(luò)接口,則二維碼生成會受到限制。二是利用PHPQRcode庫生成二維碼。PHPQRcode庫是一個開源的PHP二維碼生成庫,將源碼放到本地網(wǎng)站服務(wù)器上,再引用對應(yīng)的類即可生成自己的二維碼。這樣做優(yōu)點非常明顯,而且調(diào)用接口也很簡單,本文就采用了這種方式生成二維碼。PHPQRcode庫的使用要按照以下步驟:1.引用PHPQRcode庫:include"phpqrcode/phpqrcode.php";2.定義各種參數(shù),如:$errorCorrectionLevel='L';$matrixPointSize=4;$size=’10’;$url=’’;3.調(diào)用生成類輸出png格式二維碼:QRcode::png($url,false,$errorCorrectionLevel,$size);4.3個性化模塊作為面向大眾用戶的微信公眾號,必須面向用戶多種多樣的個性化需求,而且還要兼顧部分用戶傻瓜化的操作需求。項目中設(shè)計了以下幾個方面滿足用戶的個性化需求:一、可選擇的多種客戶端模板文件。客戶端模板文件可以實現(xiàn)多種多樣的用戶界面特效,使用戶有比較大的選擇空間。項目中的模板文件是可以在項目運行期間不斷增加的,用戶的選擇空間可以不斷增大。二、附加文件包的設(shè)定。為了兼顧需要個性化的用戶和需要易用性的用戶,項目中采用了一個創(chuàng)新的“附加文件包”的設(shè)定。附加文件包中可以包含各種內(nèi)容,例如圖片、配置文檔和其他需要擴展的HTML頁面等。由于附加文件包中的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論