Windows Embedded Compact7桌面瀏覽器體驗(yàn)
隨著計(jì)算機(jī)、網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,新型的高科技含量的電子產(chǎn)品層出不窮,遍及家電、生產(chǎn)、軍事等各個(gè)領(lǐng)域。嵌入式系統(tǒng)因其體積小,速度快而受到重視。
在掌上電腦、手機(jī)、導(dǎo)航設(shè)備、信息家電領(lǐng)域嵌入式系統(tǒng)被廣泛采用,其中,嵌入式桌面瀏覽器作為重要的嵌入式系統(tǒng)應(yīng)用軟件,是不可或缺的。
娛樂(lè)消費(fèi)類(lèi)電子產(chǎn)品對(duì)成本非常敏感,這就造成了嵌入式瀏覽器必須滿(mǎn)足特定的要求,嵌入式桌面瀏覽器的主要開(kāi)發(fā)難點(diǎn):
對(duì)CPU的開(kāi)銷(xiāo)要低。
消費(fèi)類(lèi)電子產(chǎn)品CPU能力弱,功耗低,種類(lèi)繁多,大多數(shù)處理器的運(yùn)算能力遠(yuǎn)遠(yuǎn)比不上PC的CPU,因此桌面瀏覽器一定要能在100MHz以下的主頻上可以運(yùn)行。
內(nèi)存占用要盡量小。
一般來(lái)說(shuō),要求嵌入式桌面瀏覽器運(yùn)行期間占用內(nèi)存小于6M,代碼小于1M。
開(kāi)發(fā)設(shè)計(jì)要合理。
消費(fèi)類(lèi)電子產(chǎn)品一般是通過(guò)遙控器或觸控來(lái)操作的,遙控器不可能跟鍵盤(pán)一樣復(fù)雜。對(duì)于使用嵌入式桌面瀏覽器來(lái)說(shuō),主要通過(guò)方向鍵、確認(rèn)鍵和返回鍵來(lái)完成。基于這個(gè)特點(diǎn),要求網(wǎng)頁(yè)中焦點(diǎn)不能過(guò)多,另外焦點(diǎn)之間的跳動(dòng)必須合理。當(dāng)網(wǎng)頁(yè)超出電視顯示范圍的時(shí)候,用戶(hù)可以通過(guò)方向鍵移動(dòng),這要求桌面瀏覽器必須把網(wǎng)頁(yè)排版在合理的寬度內(nèi),用戶(hù)可以上下方向移動(dòng)察看網(wǎng)頁(yè)內(nèi)容。
Windows Embedded Compact 7是WinCE的最新版本,推出了一個(gè)全新的瀏覽器組件。不僅支持多點(diǎn)觸摸的體驗(yàn),用戶(hù)可以通過(guò)不同的手勢(shì)將網(wǎng)頁(yè)進(jìn)行放大、縮小和上下滑動(dòng)。而且能夠利用Silverlight技術(shù)修改不同設(shè)備上瀏覽器的動(dòng)畫(huà)效果、頁(yè)面結(jié)構(gòu)、顏色;以及瀏覽器的布局等,完全可以解決嵌入式瀏覽器開(kāi)發(fā)的難點(diǎn)。
用Windows Embedded Compact 7進(jìn)行桌面瀏覽器的開(kāi)發(fā),有很多的優(yōu)勢(shì):
首先,嵌入式桌面瀏覽器對(duì)多種網(wǎng)絡(luò)的支持是一個(gè)必不可少的要求。這樣才能充分利用已有的數(shù)據(jù)資源,建立業(yè)務(wù)。用Windows Embedded Compact 7能應(yīng)用在數(shù)字電視終端中,讓瀏覽器支持相應(yīng)的數(shù)字電視數(shù)據(jù)廣播協(xié)議。
Windows Embedded Compact 7可以讓桌面瀏覽器要做到對(duì)HTTP協(xié)議的完整支持,可以實(shí)現(xiàn)與Internet的互聯(lián),提供對(duì)FTP等協(xié)議的支持,使專(zhuān)業(yè)設(shè)備對(duì)網(wǎng)絡(luò)的文件傳輸、下載更加方便快捷。
實(shí)現(xiàn)對(duì)JavaScript的支持。JavaScript作為一種腳本語(yǔ)言,本身可以提供良好的網(wǎng)絡(luò)交互性,還可以用來(lái)開(kāi)發(fā)一些小游戲。
對(duì)CSS的支持為業(yè)務(wù)的應(yīng)用開(kāi)發(fā)提供了極大便利,也成為了嵌入式瀏覽器基本的支撐技術(shù)。HTML與CSS在瀏覽器中的運(yùn)用最直接體現(xiàn)在電視中的界面美觀性,可以動(dòng)態(tài)更新界面,增強(qiáng)了收視效果,并體現(xiàn)了互聯(lián)網(wǎng)電視個(gè)性化發(fā)展趨勢(shì)。
#p#
使用IE內(nèi)核的桌面瀏覽器,使用了多頁(yè)面多線程的方式,降低了系統(tǒng)資源的耗費(fèi),方便了瀏覽,開(kāi)發(fā)容易便捷,使用常用的工具就可以開(kāi)發(fā)出來(lái);如果不要求特別完善強(qiáng)大的功能,只需簡(jiǎn)單拖一個(gè)IE控件就行了,這絕對(duì)體現(xiàn)了微軟技術(shù)的強(qiáng)大性。

Windows Embedded Compact 7具有很多新功能和新特性,Silverlight技術(shù)是一亮點(diǎn)。
利用Silverlight可構(gòu)建整頁(yè)WPF式的Web應(yīng)用程序,也可借助其他一些功能(如動(dòng)畫(huà)、廣告等特定小程序)來(lái)豐富基于HTML的頁(yè)面。
桌面瀏覽器并不直接處理構(gòu)成Silverlight應(yīng)用程序的XAML(可擴(kuò)展應(yīng)用程序標(biāo)記語(yǔ)言)內(nèi)容。實(shí)際上,在HTML頁(yè)面中,會(huì)有一個(gè)<object>標(biāo)記指向Silverlight插件,并且其參數(shù)中會(huì)包含用于下載所有必需XAML資源的URL。
Silverlight 帶有一個(gè)瀏覽器互操作性層,它允許托管代碼訪問(wèn)基礎(chǔ)頁(yè)面的文檔對(duì)象模型,并允許注冊(cè)頁(yè)面級(jí)事件的托管處理程序。同時(shí),頁(yè)面中運(yùn)行的所有JavaScript代碼均可獲得對(duì)插件的XAML內(nèi)容的訪問(wèn)權(quán)限,甚至可以進(jìn)行修改。
Silverlight應(yīng)用程序可被承載在某個(gè)頁(yè)面當(dāng)中,該頁(yè)面又承載在其本機(jī)域以外的某個(gè)幀中。在這種情況下,Silverlight托管代碼將能夠以跨域的方式訪問(wèn)宿主頁(yè)面的DOM。桌面瀏覽器可使用自己的屏障來(lái)阻止跨域腳本,但它們對(duì)于阻止Silverlight插件中的托管代碼也無(wú)能為力,大家可以利用HtmlAccess來(lái)控制跨域訪問(wèn)。
一經(jīng)授予對(duì)基礎(chǔ)頁(yè)面 DOM 的訪問(wèn)權(quán)限,Silverlight應(yīng)用程序即可使用靜態(tài)類(lèi)HtmlPage的成員來(lái)完成自己的任務(wù)。完整的瀏覽器信息可通過(guò)BrowserInformation特性來(lái)獲取,這種情況下,特性屬于托管類(lèi)型,可封裝在瀏覽器級(jí)別可用的所有用戶(hù)代理信息。
訪問(wèn)用戶(hù)代理數(shù)據(jù)可以這么寫(xiě):
string info = HtmlPage.BrowserInformation.UserAgent;
HtmlElement lab1 = HtmlPage.Document.GetElementById("lab1");
lab1.SetProperty("innerHTML", "Dino");
Silverlight 與 DOM 實(shí)現(xiàn)交互帶來(lái)的一個(gè)極大好處是能夠運(yùn)行托管代碼來(lái)響應(yīng)DOM事件。例如,當(dāng)單擊某個(gè)按鈕時(shí),可執(zhí)行C#代碼而非JavaScript。
實(shí)現(xiàn)方式如下:
HtmlElement butn1;
butn1 = HtmlPage.Document.GetElementById("butn1");
butn1.AttachEvent("click",
new System.EventHandler(butn1_Click));
void butn1_Click(object sender, EventArgs e)
{
Guid g = Guid.NewGuid();
HtmlElement label1 = HtmlPage.Document.GetElementById("lab1");
lab1.SetProperty("innerHTML", g.ToString());
}
那么會(huì)有人問(wèn),有沒(méi)有更直接的方法從一個(gè)Silverlight插件調(diào)用另一個(gè)呢?當(dāng)然有,如下:
HtmlElement plugin = HtmlPage.Document.GetElementById("Silverlight2");
var content = (ScriptObject) plugin.GetProperty("content");
var action = (ScriptObject) content.GetProperty("Action");
action.Invoke("GetRandomNumber");
瀏覽器互操作性層、包含多種功能,實(shí)現(xiàn)Silverlight托管領(lǐng)域和JavaScript解釋領(lǐng)域之間的通信。
從用戶(hù)體驗(yàn)的角度來(lái)看,Windows Embedded Compact 7不僅僅滿(mǎn)足了用戶(hù)對(duì)于桌面瀏覽器的認(rèn)知體驗(yàn),好玩夠用,還提升了用戶(hù)的操作體驗(yàn),耐玩易用。