2010 年 9 月 13 日

在桌面應用程式中使用 WebKit (4) - Plug-ins

應廣大(?)讀者要求,接下來聊聊 WebKit 的 Plug-in。

首先,瀏覽器的 Plug-in 與所謂的 Extensions、Add-Ons、Accelerators 是不一樣的。Plug-in 的用途是讓瀏覽器可以開啟原本所無法開啟的檔案,而 Extension 則往往是用 HTML、JavaScript、CSS 或其他技術,增加瀏覽器的功能。比方說,我們想要在瀏覽器畫面上方增加一條工具列,這個工具列上面有一堆按鈕,讓你可以把現在瀏覽的內容貼到 Twitter 上,讓你快速使用某個搜尋引擎,或是把現在的網頁丟到某個 HTML validator 檢查看看有哪些問題,這是 Extensions。

而瀏覽器原本只能瀏覽 HTML 檔案、純文字檔案,還有 GIF、Jpeg、PNG 等圖形檔案,沒辦法直接播放 mp3(其實現在的瀏覽器可以支援 audio tag)或影片檔案(現在當然也有支援 video tag 的瀏覽器),所以,瀏覽器就提供了一個架構,在遇到這類型的檔案時,如果知道某個 plug-in 可以處理這種檔案,就在畫面中挖出一塊空間,讓 plug-in 處理這些檔案,然後把 plug-in 的畫面填到預留的空白中。或這麼說-我們在 HTML 中使用 embed 語法的時候,就是要使用 plug-in 的時候。

閱讀〈在桌面應用程式中使用 WebKit (4) - Plug-ins〉全文


2010 年 9 月 12 日

在桌面應用程式中使用 WebKit (3) - JavaScriptCore

前一篇最後簡略提了一下 JavaScriptCore Framework。JavaScriptCore 是 WebKit 的 JavaScript 引擎,目前的實作就是代號叫做 SquirrelFish,吉祥物是一隻長相恐怖的祕雕魚。

一般來說,在 Mac OS X 上,我們想要製作各種網頁與 Native API 程式互動的功能,大概不會選擇使用 JavaScriptCore,因為現在寫 Mac OS X 的桌面應用程式,多半會直接選擇使用 Objective C 語言與 Cocoa API,各種需要的功能,都有像在前兩篇提到的 Obj C 方案-使用 WebKit Framework 中的 WebScriptObject 與各種 DOM 物件。

閱讀〈在桌面應用程式中使用 WebKit (3) - JavaScriptCore〉全文


2010 年 9 月 9 日

在桌面應用程式中使用 WebKit (2) - JavaScript 與 Objective C 的溝通

在寫 JavaScript 的時候,可以使用一個叫做 window 的物件,像是我們想要從現在的網頁跳到另外一個網頁的時候,就會去修改 window.location.href 的位置;在我們的 Objective C 程式碼中,如果我們可以取得指定的 WebView 的指標,也就可以拿到這個出現在 JavaScript 中的 window 物件,也就是 [webView windowScriptObject]。

這個物件就是 WebView 裡頭的 JS 與我們的 Obj C 程式之間的橋樑-window 物件可以取得網頁裡頭所有的 JS 函數與物件,而如果我們把一個 Obj C 物件設定成 windowScriptObject 的 value,JS 也便可以呼叫 Obj C 物件的 method。於是,我們可以在 Obj C 程式裡頭要求 WebView 執行一段 JS,也可以反過來讓 JS 呼叫一段用 Obj C 實作的功能。

閱讀〈在桌面應用程式中使用 WebKit (2) - JavaScript 與 Objective C 的溝通〉全文


2010 年 9 月 8 日

兩個 iPad 小技巧

今天跟朋友吃飯的時候,剛好問起有幾個東西怎麼做。在這邊簡單寫一下。

閱讀〈兩個 iPad 小技巧〉全文


2010 年 9 月 6 日

我自認對資訊圖表的要求不算高

有時候我在想我是不是愈來愈鄉愿,覺得看事情應該要有同理心,畢竟世界這麼大,人這麼多,每個人要做的事情不但多而且複雜-技術問題搞定了但是可能資源不夠,有了資源之後又可能卡在法規,就算法規允許也可能動輒得咎,一個人光是做到一個起碼的敬業就可能要搞到沒有什麼生活與睡眠品質。不過呢,瞄到一些東西,還是覺得不說說就難過。

這兩天撿到一本 Smart 智富去年十一月出版的特刊,叫做《Mapping China-看圖發中國財》,大抵上這本特刊的立意是唱旺 ECFA,手法則是透過圖表,說明中國最近幾年的各項成長,包括就業、產值、各項工業發展等,並且以地圖呈現有哪些重要的經濟特區,不同區域有哪些重要企業等,標榜用「最夯視覺全覽新絕招」,讓讀者「快速掌握中國經濟商機」,並且「一眼看懂中國全貌」。

不過我倒是愈看愈迷惘。

閱讀〈我自認對資訊圖表的要求不算高〉全文


2010 年 9 月 5 日

在桌面應用程式中使用 WebKit (1) -雜論,以及用 Objective C 操作 DOM

不久前公司信箱收到封信。來信的這位朋友說,他這幾年做網站做得非常膩,也覺得非常無趣,所以想要改做 Mac 軟體。

想改做桌面軟體好擺脫 Web,這種想法老實說不怎麼現實,首先呢,如果現在是想要做 iPhone 還是 iPad,可能還有點道理,以目前的 Mac 軟體環境來看,做 Mac 軟體大概就像寒天飲冰水,光是靠「不想做 A 所以來做 B」這種理由,實在不知道可以維持多久的熱情。國際巨星李奧納多.狄卡皮歐在電影《全面啟動》裡頭就告訴我們,光是負面情感,是沒有辦法真正深植想法的,今天做 Web 覺得煩了,誰知道哪天又覺得做什麼別的也煩了。

而且,做桌面軟體也不可能擺脫 Web。姑且不論 Google Chrome OS、Palm WebOS 這種擺明就要用 Web 技術實作桌面或行動裝置作業系統上的應用程式架構,或是 Adobe 提出像 AIR 這種用 Flash、HTML 與 JavaScript 就可以寫桌面應用程式的方案,現在哪一套桌面應用程式,幾乎都有或多或少的 Web 整合。

閱讀〈在桌面應用程式中使用 WebKit (1) -雜論,以及用 Objective C 操作 DOM〉全文


Powered by WordPress 3.2.1, ideas and cares.

Weizhong Yang (a.k.a zonble)

Email:

Email:

AIM: zonble@mac.com