成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Dash Board的Widget開發指南

移動開發
本文向大家簡單介紹一下Widget開發技術,Widget在Dashboard被激活時就能夠使用,并且在Dashboard被移除時消失,允許快速的“at-a-glance”用法。

本文和大家重點學習一下DashBoard的Widget開發,因為Dashboard是系統的一部分,不需要安裝任何額外的部件,Widget就是用戶的最基本的工具。每個Widget都是有特定功能的輕量級程序。

DashBoard的Widget開發

出處

Tiget引入了一個叫作DashBoard的新特性,并提供了一個叫做Widget的新類,用于開發超小型的應用程序。Dashboard對于用戶是一個功能強大的特性,對于開發者,它提供了一個全新的開發環境。Widgets可以快速開發,簡單配置。并且可以使用Tiger的所有先進技術。在桌面環境和在Web網頁上,Widgets都非常適合處理小量的數據和程序間互動。并且提供了一個非常好的方式來為現有的程序添加功能,這就為提供了開發新產品或者為現有產品增加市場價值提供了新的機遇。

基于Web技術,DashboardWidgets可以通過HTML,JavaScript和CSS的混合方式建立。這樣就使很多人都有了Widget開發的能力。只要你知道怎么建立一個網頁,你就知道怎么建立一個Widget。但是Widget并不限制與web-base技術的使用。Widget開發還能銜接使用MacOSX的強大功能。現在,你可以個用幾個小時或者幾天的時間就建立一個Widget。還可以下載Dashboard的SDK是開發速度加快。

本文為你展示了Dashboard的工作方式,并且為怎樣開發和怎樣分塊的發布功能模塊提供一個介紹。

了解Widget開發

Widget在Dashboard被激活時就能夠使用,并且在Dashboard被移除時消失,允許快速的“at-a-glance”用法。因為Dashboard是系統的一部分,不需要安裝任何額外的部件,Widget就是用戶的最基本的工具。每個Widget都是有特定功能的輕量級程序。如果Widget需要更多的界面空間用于設定***項,Dashboard允許Widget翻轉來使用Widget的背部。

Widget可以分為下面的三個種類:

裝飾Widget是自包含的,不需要其他程序和訪問網絡支持的。時鐘,秒表,計算器和便條工具都是這一類的。

應用程序Widget是和一個功能齊全的應用程序相關聯的。這一類的Widget通過提供一個更簡便的并且通常是read-only的用戶界面加強了應用程序的功能。ITuneControler和AdrressBookWidget都是這一類的。

信息Widget都是為處理來自互聯網的信息而設計的。這些Widget允許你監視外界的事件例如天氣,飛機航班或者股票價格。

DashBoard的架構

DashBoard的運行時架構由下面的部件構成。

DashBoard服務器,一個輕量級的進程用于管理DashBoard的用戶界面,包括Widget欄(Widgetbar),關閉框(CloseBar),和Widget啟動效果。

Dashboard客戶端進程,提供Dashboard服務器和單獨的Widget之間所有必需的結合和WebKit視圖給Widget顯示自己的用戶界面。Dashboard服務器在每運行一個Widget都啟動一個客戶端進程。

Widget實例,向用戶顯示數據,并和用戶互動。每個Widget在一個獨立的客戶端進程里運行,客戶端進程就像沙箱(sandbox)那樣使Widget不會影響其他Widget或者應用程序。為了使程序可靠,Dashboard小心地管理Widget,如果一個Widget崩潰了,它會自動重新啟動,它僅僅會在Dashboard上再出現。如果它失常了,一連崩潰超過3次,它會被自動在Dashboard上移除。#p#

Widget開發技術內幕

最簡單的解釋,Widget只是一個在Dashboard上顯示的網頁而不是在像Safari的瀏覽器上。Widget是被包含在bunble(捆)里,然后被安放在磁盤上。Bundle是一個組織了所有Widget所需的資源和Widget本身在一起的目錄。Widgetbundle都有.wdt的后綴。和其他bundle一樣,Widgetbundle通過Finder當作一個單一的實體管理。

一個基本的Widget包含下面的文件:

◆一個主要的HTML文件定義了Widget的用戶界面。

◆一個默認的背景圖片。圖片使用PNG格式,在Dashboard加載Widget時顯示的。使用PNG格式是因為它很好的支持了Alpha通道的透明。

◆一個屬性列表文件叫做info.plist,它包含了Widget的標適符,名字,和版本信息,大小和主要的HTML頁面,還有可能加上其它的可選的信息供Dashboard使用。、

隨著Widget的增長,你還可以往Widget的bundle加入其他文件,例如圖片,擴展CSS和JavaScript文件。

讓我們從HTML開始,看看各種Widget組建:


HTML標志

一開始,如果你知道怎樣寫一個網頁的內容,你就可以寫一個Widget了。為了跟隨現在的網絡標準的***實現,推薦你使用XHTML1.0標準來寫網頁的內容。例如,下面的是“HelloWorld”Widget的HTML。

 

  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"  
  2.  
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4.  
  5. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  6.  
  7. <head> 
  8.  
  9. <title>HelloWorld</title> 
  10.  
  11. </head> 
  12.  
  13. <bodybackgroundbodybackground="Default.png"> 
  14.  
  15. http://developer.apple.com/macosx/tiger/dashboard.html(3of10)2005-3-412:30  
  16.  
  17. DevelopingDashboardWidgets  
  18.  
  19. <h1>Hello,World!</h1> 
  20.  
  21. </body> 
  22.  
  23. </html> 

 

因為Widget開發使用HTML來定義的,所以如果你使用文本編輯器來寫HTML標記的話,你可以用Safari(蘋果的網絡瀏覽器,用IE也可以)。HTML提供了建立Widget需要的大部分功能,不過一些擴展讓Widget有了一些你會使用到的獨特功能。例如,Widget使用了三個HTML的擴展:

◆canvas標志允許你在Widget里完成全部的2D繪畫。

◆在img標志上的composite屬性讓你指定一個圖像的繪畫。

◆一個新的search類型<inputtype=”search”>,允許你建立一個MacOSX風格的搜索框。

必須說明的是,這只是對HTML標準的一個很小的改動,并且設計為可以在任何HTML用于建立用戶界面的上下文環境使用。Apple公司正在和其他的生產商進行交涉,確保這些改動被采用并變成標準。

CascadingStyleSheets(CSS)

如果你加載了上面的那個基本的“HelloWorld”Widget,你會發現“HelloWorld”這幾個字看起來并不可以接受。最終用戶不會喜歡這種放錯地方的文字。解決方法就是CascadingStyleSheets(CSS),一個調整HTML風格的網頁標準。這里是在Widget中使用CSS的例子。

 

  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"  
  2.  
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4.  
  5. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  6.  
  7. <head> 
  8.  
  9. <style> 
  10.  
  11. body{  
  12.  
  13. margin:0;  
  14.  
  15. }  
  16.  
  17. .helloText{  
  18.  
  19. font:24px"LucidaGrande";  
  20.  
  21. font-weight:bold;  
  22.  
  23. color:white;  
  24.  
  25. position:absolute;  
  26.  
  27. top:24px;  
  28.  
  29. left:30px;  
  30.  
  31. }  
  32.  
  33. </style> 
  34.  
  35. </head> 
  36.  
  37. <bodybackgroundbodybackground="Default.png"> 
  38.  
  39. <h1classh1class="helloText">Hello,World!</h1> 
  40.  
  41. </body> 
  42.  
  43. </html> 
  44.  

 

當然,你同樣可以把CSS放在另一個stylesheet文件里,并用import語句來引用它。就像下面一樣:

  1. <style> 
  2.  
  3. @import"HelloWorld.css";  
  4.  
  5. </style> 
  6.  

 

正如你所看到的,HTML和CSS為你提供了一個豐富的工具集來建立有趣的用戶界面。現在讓我們看看怎樣建立那些動態的用戶界面。#p#

JavaScript

為了符合網絡技術的要求,Widget開發使用JavaScript來提供一個動態特性。在Dashboard中的JavaScript使用起來和在瀏覽器中一樣,除了一個添加了一個Widget對象。Widget對象給了你做下面這些事的能力:

◆訪問用戶***項

l實現轉換,例如改變Widget的大小或者翻轉它來訪問***項。

◆處理Dashboard激活事件。

◆打開其他應用程序

◆處理拉放操作。

◆通過URL來訪為互聯網得到數據。

◆執行系統命令,例如shellscript或者命令行工具。

例如,要訪問***項參數,你可以用下面的代碼:

  1. widget.setPreferenceForKey(preference,key);  
  2.  
  3. widget.preferenceForKey(key);  
  4.  

 

Widget處理Dashboard激活事件時非常重要的,這樣Widget就可以在不顯示的時候不消耗CPU時間或者網絡資源。下面的代碼實現了這樣的功能。

 

  1. if(window.widget){  
  2.  
  3. widget.onhide=onhide;  
  4.  
  5. widget.onshow=onshow;  
  6.  
  7. }  
  8.  
  9. functiononshow(){  
  10.  
  11. if(timerInterval==null){  
  12.  
  13. timerInterval=setInterval("updateTime(true);",1000);  
  14.  
  15. }  
  16. }  
  17.  
  18. functiononhide(){  
  19.  
  20. if(timerInterval!=null){  
  21.  
  22. clearInterval(timerInterval);  
  23.  
  24. timerInterval=null;  
  25. }  
  26. }  
  27.  

 

就像其他的HTML頁面一樣,你可以把JavaScript動作連接到任何用戶界面元素。例如,當用戶按下等號的圖片時,計算器Widget可以進行這樣的一個動作:

<imgid="equal"src="equal.png"onmousedown="equalAction(event);">

關于Widget對象,有一點必須說明,它只在運行Dashboard時有用,在Safari中運行不起作用。


Info.plist文件

Info.plist文件包含了Widget的所有核心信息。這些信息被Dashboard用來識別Widget和知道在哪里得到資源。建立一個屬性表的最簡單方法是使用PropertyListEditor

 

  1. KeyNamePurposeRequired  
  2.  
  3. Key:MainHTML  
  4.  
  5. Purpose:ThepathintheWidgetbundletothemainHTMLfilefortheWidget'sinterface.  
  6.  
  7. Required:YES  
  8.  
  9. Key:Width  
  10.  
  11. Purpose:Thewidth,inpixels,oftheWidget  
  12.  
  13. Required:YES  
  14.  
  15. Key:Height  
  16.  
  17. Purpose:Theheight,inpixels,oftheWidget  
  18.  
  19. Required:YES  
  20.  
  21. Key:CFBundleName  
  22.  
  23. Purpose:Thenameofthebundle.  
  24.  
  25. Required:YES  
  26.  
  27. Key:CFBundleIdentifier  
  28.  
  29. Purpose:ThereverseInternetdomainstyleidentifierforthebundle.  
  30.  
  31. Required:YES  
  32.  
  33. Key:DefaultImage  
  34.  
  35. Purpose:ThepathintheWidgetbundletotheWidget'sdefaultimage.  
  36.  
  37. Required:YES  
  38.  
  39. Key:Plugin  
  40.  
  41. Purpose:Thenameofacustomplug-inusedbytheWidget.  
  42.  
  43. Required:NO  
  44.  
  45. Key:AllowMultipleInstances  
  46.  
  47. Purpose:IndicateswhethermultipleinstancesoftheWidgetcanberun  
  48.  
  49. Required:NO  
  50.  

 

#p#
建立一個Widget

建立一個新的Widget是簡單而直接的。使用下面的步驟來開始:

◆建立一個文件加來保存你的Widget

◆定義Widget開發的info.plist文件

◆使用你喜歡的文本編輯器建立一個新的主要HTML

◆使用Safari來打開HTML文件來檢視運行中的Widget

◆重新把Widget加載到Safari來查看你做過的任何更新改動。

這是眾多網絡開發者熟悉的快速、簡單、迭代性的方法。當然,有一個更快的方法,同樣為網絡開發者所熟悉:從Dashboard的SDK復制一個可用的例子來作為立足點開發。對于Widgetbundle,你可以直接進入它的測試環境:Safari。通過簡單地雙擊它的主要HTML文件來在Safari中打開它并在你做了一些改動以后重新加載它。

你必須記著,Safari只是一個最基本的Widget測試環境,它不支持Widget的所有的可用功能。要在Dashboard中測試Widget,只要雙擊一個.wdgt包。要看任何的改動,使用Command-R來重新加載。你會看到Dashboard會讓它用一個很Cool的旋轉效果重新加載。

LeveragingMacOSXTechnologies

略……

配置一個Widget

當你建立了一個Widget后,下一步就是把它交到用戶手上。為了讓Dashboard找到那個Widget,它需要被放置到下面其中一個位置上:

l/Library/Widgets

l~/Library/Widgets


結論

你可以看到,Dashboard提供了一個非常新的開發環境。Widget可以又簡單又快的被開發,而且功能強大。他們可以全權訪問互聯網,可以使用Quartz的高級繪畫能力和MacOSX的其他能力。剩下需要的只是你的創造力!


 

責任編輯:佚名 來源: csdn.net
相關推薦

2010-04-03 11:30:15

Widget開發

2011-07-25 16:21:22

Sencha touc

2022-08-02 08:01:09

開發插件Chrome前端技術

2011-06-09 18:24:36

QT Wince

2012-03-26 09:27:40

谷歌安卓開發谷歌安卓

2023-05-15 18:44:07

前端開發

2009-06-24 16:30:21

JSF組件模型

2015-11-12 16:14:52

Python開發實踐

2015-12-16 10:30:18

前端開發指南

2019-10-31 08:00:00

機器學習人工智能AI

2021-08-09 09:47:34

Blazor 路由開發

2011-12-29 10:48:49

移動Web

2011-04-18 11:00:34

使用音頻BlackBerry

2012-05-18 10:08:56

TitaniumAndroid

2021-06-21 15:21:52

鴻蒙HarmonyOS應用開發

2022-07-12 07:24:20

物聯網產品開發

2025-06-26 02:24:00

Javaer大模型開發

2011-03-14 09:55:25

AndroidWidget

2011-08-02 17:58:09

iPhone開發 事件

2022-03-23 15:17:00

Harmony鴻蒙操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产中文字幕 | 一区二区三区在线播放 | 91视在线国内在线播放酒店 | a爱视频 | 亚洲 欧美 综合 | 成人精品国产免费网站 | 最新午夜综合福利视频 | 9999在线视频 | 久久草视频| 欧美精品片 | 精品国产一区二区三区免费 | 欧美日韩高清免费 | 欧美色a v | 精品国产亚洲一区二区三区大结局 | 日本久久福利 | 欧美精品一区二区三区在线 | 韩国精品一区二区三区 | 成人av网站在线观看 | 欧美激情久久久 | 国产激情在线播放 | 亚洲精品一区久久久久久 | 91视频一88av | 自拍偷拍第一页 | 99久久国产综合精品麻豆 | 91视频久久 | 成人日韩 | 超级黄色一级片 | 久久福利 | 曰批视频在线观看 | 91精品国产高清一区二区三区 | 91极品尤物在线播放国产 | 99精品免费 | 日韩三级 | 国产一区二区三区在线观看免费 | 日韩av免费在线观看 | 美女爽到呻吟久久久久 | 天天摸天天干 | 国产大学生情侣呻吟视频 | 日韩欧美字幕 | 黑人精品欧美一区二区蜜桃 | 国产精品美女久久久久aⅴ国产馆 |