在启动时运行的“浏览器外”Web应用程序?
我已经熟悉了的“出浏览器的” Web应用程序的新概念,支持在最近的Silverlight,JavaFX的,Adobe AIR的等在启动时运行的“浏览器外”Web应用程序?
通过Scott Hanselman最近听关于这一主题的podcast,我已经意识到这些新体系结构背后的目的之一是允许“桌面应用程序感觉”。此外,我了解一些(或全部)这些功能允许离线访问资源沙箱。这听起来好像这些框架可以替代“真正的”桌面应用程序,只要应用程序不需要弄乱用户的机器(即访问外围设备,某些文件IO等)。
我有一个非常具体的问题。我的应用程序需要在启动时运行。是否有可能使用这样的框架而不要求用户下载并运行某个可执行文件?
例如,我总是可以指导用户下载一个小的EXE,将一个.lnk文件放入启动目录,但我想避免这样的补丁。
总结:是否有可能让浏览器外的Web应用程序设置本身在启动时运行而不需要文件下载?
为了进一步阐明,这个问题并不是来自“邪恶”的地方,而是来自于试图确定“浏览器外”框架是否确实是我的特定需求的桌面应用程序的合适替代品。
假设您正在为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应用程序可以放置一个快捷方式启动文件夹,除非你以某种方式获得的完全信任。
@Peter:Web应用程序可以将LNK放入启动文件夹中吗?如果是这样 - 如何?你能举一个Silverlight或AIR的例子吗?谢谢 – 2009-09-04 04:53:15
所以,这里的处理:网络应用程序通常会有一个安全上下文,默认情况下将无法访问写入文件系统(临时文件之外),访问注册表等。
正如你所说的,一种方法是让用户运行或配置它,以便在启动时执行lnk。
另一种方式,我认为,更符合你想要的是,用户可以自己运行程序,点击应用程序中的某个按钮,然后配置它。
我知道你可以做到这一点,但用户必须允许完全访问他们的系统,因为你的应用程序需要改变系统配置。然后你可以配置它(通过在Startup文件夹中写入一个lnk到WebStart JNLP)
试图安装它,应用程序被注意到有“无限制”访问我的电脑......我不熟悉AIR,但这是标准的操作方式吗? – 2009-08-09 15:45:46
是的,几乎所有我看到的应用程序都具有“无限制”访问权限。考虑到它来自Adobe的网站,我相信它不会造成任何伤害。 – 2009-08-09 15:47:12
你想看看Main.js. – 2009-08-09 15:51:09