2009-08-09 214 views
8

我已經熟悉了的「出瀏覽器的」 Web應用程序的新概念,支持在最近的Silverlight,JavaFX的,Adobe AIR的等在啓動時運行的「瀏覽器外」Web應用程序?

通過Scott Hanselman最近聽關於這一主題的podcast,我已經意識到這些新體系結構背後的目的之一是允許「桌面應用程序感覺」。此外,我瞭解一些(或全部)這些功能允許離線訪問資源沙箱。這聽起來好像這些框架可以替代「真正的」桌面應用程序,只要應用程序不需要弄亂用戶的機器(即訪問外圍設備,某些文件IO等)。

我有一個非常具體的問題。我的應用程序需要在啓動時運行。是否有可能使用這樣的框架而不要求用戶下載並運行某個可執行文件?

例如,我總是可以指導用戶下載一個小的EXE,將一個.lnk文件放入啓動目錄,但我想避免這樣的補丁。

總結:是否有可能讓瀏覽器外的Web應用程序設置本身在啓動時運行而不需要文件下載?

爲了進一步闡明,這個問題並不是來自「邪惡」的地方,而是來自於試圖確定「瀏覽器外」框架是否確實是我的特定需求的桌面應用程序的合適替代品。

回答

2

BkMark示例here顯示瞭如何使用Adobe Air在啓動時啓動應用程序。所以,是的,這是可能的。

+0

試圖安裝它,應用程序被注意到有「無限制」訪問我的電腦......我不熟悉AIR,但這是標準的操作方式嗎? – 2009-08-09 15:45:46

+0

是的,幾乎所有我看到的應用程序都具有「無限制」訪問權限。考慮到它來自Adobe的網站,我相信它不會造成任何傷害。 – 2009-08-09 15:47:12

+0

你想看看Main.js. – 2009-08-09 15:51:09

0

假設您正在爲Windows構建,在啓動時啓動可執行文件可以通過多種方法完成。

對於用戶會話啓動,您可以通過將lnk文件放在適當的文件夾或註冊表項中來實現此目的。對於操作系統啓動,您可以通過註冊表項來實現。有幾種排列:在引導

  • 運行的應用程序一次(UI不允許)
  • 運行應用程序每次啓動(不允許UI)
  • 啓動服務根據註冊表
  • 運行設置策略每次啓動應用一旦用戶會話啓動
  • 運行應用程序的所有用戶會話

由於一個徹頭徹尾的瀏覽器應用程序的UI具有我希望你的意思是每個用戶會話運行應用程序,在這種情況下,你可以把LNK文件放在用戶的啓動文件夾中。

我剛剛創建一個SL4 OOB應用程序的快捷方式,這是該快捷方式的目標:

"C:\Program Files (x86)\Microsoft Silverlight\sllauncher.exe" 2635882436.localhost 

一個搜索我的硬盤透露,位置2635882436.localhost是一個文件夾。

C:\Users\<mylogin>\AppData\LocalLow\Microsoft\Silverlight\OutOfBrowser\2635882436.localhost 

我相當懷疑任何類型的OOB應用程序可以放置一個快捷方式啓動文件夾,除非你以某種方式獲得的完全信任。

+0

@Peter:Web應用程序可以將LNK放入啓動文件夾中嗎?如果是這樣 - 如何?你能舉一個Silverlight或AIR的例子嗎?謝謝 – 2009-09-04 04:53:15

0

所以,這裏的處理:網絡應用程序通常會有一個安全上下文,默認情況下將無法訪問寫入文件系統(臨時文件之外),訪問註冊表等。

正如你所說的,一種方法是讓用戶運行或配置它,以便在啓動時執行lnk。

另一種方式,我認爲,更符合你想要的是,用戶可以自己運行程序,點擊應用程序中的某個按鈕,然後配置它。

我知道你可以做到這一點,但用戶必須允許完全訪問他們的系統,因爲你的應用程序需要改變系統配置。然後你可以配置它(通過在Startup文件夾中寫入一個lnk到WebStart JNLP)

0

對於Internet爆炸,Javascript應用程序write access to the disk。 對於其他(更安全)的瀏覽器,您需要下載或Adobe AIR。

相關問題