我在想,創建一個基本上只是一個Web視圖界面的Cocoa應用程序是否可行?或者在做這樣的事情時有一些嚴重的限制嗎?你可以用HTML/CSS和Javascript編寫Cocoa應用程序嗎?
如果這是「可行」,這是否也意味着您可以爲Windows應用程序做同樣的事情?
我在想,創建一個基本上只是一個Web視圖界面的Cocoa應用程序是否可行?或者在做這樣的事情時有一些嚴重的限制嗎?你可以用HTML/CSS和Javascript編寫Cocoa應用程序嗎?
如果這是「可行」,這是否也意味着您可以爲Windows應用程序做同樣的事情?
肯定可以創建一個應用程序,它只是一個內部有web視圖的Cocoa窗口。是否可以有意義地稱爲「可可應用程序」是有爭議的。顯然,應用菜單等內容需要一些Cocoa膠水代碼,所以是的,在HTML和JS中可以做多少限制。
你還必須仔細考慮你將如何處理本地化(重複每個語言的整個HTML和JS源代碼是不可取的),並且有很多接口構造會更困難創造比他們將要使用Cocoa更好的效果,並且/或者對於習慣OS X外觀的人來說不會感到自己的本能。而且,您將通過使用解釋型語言放棄某些性能,這對您的應用而言可能並不重要。
OS X的應用程序是以這種方式構建的,並且它們通常感覺像壞端口;如果您的目標是讓感覺像一個真正的Mac應用程序,它可能不是一個好的方式去。
Logitech Harmony遠程軟件曾經以類似的方式完成,很顯然它不是原生的可可應用程序,因爲它使用起來非常痛苦。 – 2009-06-25 11:21:10
WebKit和JavaScriptCore有許多特定於供應商的CSS和JS特性,它們允許更廣泛地訪問本機Mac外觀和行爲,而不是標準HTML/CSS/JS。不幸的是,最後一次檢查時,很多關於行爲結尾的信息都被記錄在案,並要求開發人員進入Cocoa文檔以找出可能的結果。如果你正在開發Cocoa目標,那麼學習Cocoa可能是一個更好的投資。 – eyelidlessness 2010-10-17 16:25:16
是的,有相當多的應用程序可以做到這一點。我認爲他們通常存儲的HTML文件,並使用jQuery獲取更新的數據。它主要是爲用戶提供更快的體驗,因爲您只是檢索數據而不是HTML的大部分。
這些限制主要是由於您無法訪問所有iPhone控件和庫。 MapKit,郵件等。
當然。 PandoraBoy就是這樣。這是一個使用Javascript橋樑的現有Flash應用程序的薄包裝。我已經在其他用戶界面編程控制WebViews使用直接DOM操作來獲得非常好的效果(沒有給過任何「Web應用程序」的感覺)。您可以使用ObjC/Javascript橋接讓Javascript調用ObjC,而WebKit可以直接從ObjC運行Javascript。
相關,但在相反的方向,有Cappuccino,這是一個Javascript中的類可可框架。
我不清楚你的意思是「對Windows應用程序做同樣的事情」。
iPhone操作系統擁有極好的設施,可以讓網絡應用程序充當設備上的一等公民。您可以將Web應用程序圖標添加到跳板,就像Cocoa應用程序一樣,您可以在本地存儲數據以及其他許多非常簡潔的內容......查看these examples或ADC documentation。
當然這是可能的。會有很大的侷限性。這樣的應用程序無法做任何網頁無法做到的事情。因此,例如,除非您編寫了支持Cocoa代碼,否則使用標準的系統範圍文檔處理支持將不復存在。
Titanium可以幫助你很多,它基本上是一個帶有WebView的可可窗口(你正在尋找的東西),但是JavaScript的綁定本身的東西,比如訪問文件系統,菜單欄,Dock圖標即徽章),聲音等,加上它可以在Mac,Linux,Windows,iPhone和Android上運行!
作爲開源軟件的鈦賬單本身,但開發人員需要註冊一個帳戶,並保持與專有服務器軟件的互聯網連接,以利用該平臺。
你問的不太什麼,但...
mProjector是對Flash的操作系統包裝。這就像一個帶有系統API的Flash投影機的擴展版本,可讓您訪問Mac/Win OS功能。
這將使您能夠利用網絡技能構建跨平臺桌面應用程序。它比其他主要選項鋅更便宜和更好。
您可能想澄清您是在討論Mac或iPhone應用程序。 – smorgan 2009-06-24 14:57:09