我已经熟悉了“浏览器外”Web应用程序的新概念,最近支持Silverlight,JavaFX,Adobe AIR等。
最近通过podcast收听关于这个主题的Scott Hanselman,我已经意识到这些新架构背后的目的之一是允许“桌面应用程序感觉”。此外,我了解其中一些(或全部)允许对资源沙箱进行一些脱机访问。这听起来好像这些框架可以替代“真正的”桌面应用程序,只要应用程序不需要弄乱用户的机器(即访问外围设备,某些文件IO等)。
我有一个非常具体的问题。我的应用程序需要在启动时运行。是否可以使用这样的框架而不需要用户下载和运行某个可执行文件?
例如,我总是可以指示用户下载一个将.lnk文件放在启动目录中的小EXE,但我想避免使用这样的补丁。
总结一下:是否有可能将浏览器外的Web应用程序设置为在启动时运行而无需下载文件?
进一步澄清,这个问题不是来自“邪恶”的地方,而是来自于尝试根据我的具体要求决定“浏览器外”框架是否确实是桌面应用程序的正确替代方案。 / p>
答案 0 :(得分:2)
BkMark示例here显示了如何使用Adobe Air启动应用程序。所以,是的,这是可能的。
答案 1 :(得分:0)
假设您正在为Windows构建,可以通过多种方式在启动时启动可执行文件。
对于用户会话启动,您可以通过将lnk文件放在相应的文件夹中或使用注册表项来实现此目的。对于操作系统启动,您可以使用注册表项来实现此目的。有几种排列:
由于浏览器应用程序没有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应用程序都可以在Startup文件夹中放置一个快捷方式,除非您以某种方式获得完全信任。
答案 2 :(得分:0)
所以,这是交易:Web应用程序通常会有一个安全上下文,默认情况下无法访问文件系统(临时文件之外),访问注册表等等。
正如你所说,有一种方法是让用户运行某些东西或对其进行配置,以便在启动时执行lnk。
另一种方式,我认为,更符合您的需求,用户可以自己运行程序,单击应用程序中的某个按钮,然后进行配置。
我知道使用Java可以做到这一点,但是用户必须允许完全访问他们的系统,因为您的应用需要更改系统配置。然后你可以配置它(通过在启动文件夹中写一个lnk到你的WebStart JNLP)
答案 3 :(得分:0)
对于Internet Exploder,Javascript应用做有write access to the disk。 对于其他(更安全的)浏览器,您需要下载或Adobe AIR。