在使用新的Visual Studio 11预览后,我认为最有趣的问题是如何在浏览器中运行我的基于javascript的新应用程序,并进行最少的更改?那可能吗?我想支持javascript的想法是为了更好的跨平台应用程序,我是对的吗?
我理解一些winJs代码调用WinRT,但是我们可以在基于Web的应用程序上使用一些WinJS代码吗?
答案 0 :(得分:28)
我正在构建并基于微软人员所说的WinJS确实调用了Windows RT。加上他们的一些东西是基于一些供应商前缀css的东西(即仅IE10)。所以简短的答案是否定的,你不能。
更多想法。 需要说明的是,从现有的Html / Js应用程序转到Win8应该可行。关于Win8 App事件的一些考虑因素以及外观和感觉是需要关注的一些问题。但核心应该有效。
最初的问题与“我有一个IE9 HTML5 / Js应用程序,我想在任何地方运行(包括IE6,FF2)”不一样,是否有可能?“它们的库中有很多功能,以及利用新的CSS3功能(-ms-grid,-ms-float,3d变换)。据我所知,他们所有的手势识别内容都在winRT中,因为“快速而流畅”的响应能力,你无法在Metro环境之外真正使用它们。
在我看来,支持win8 Metro风格的应用程序的原因不是因为跨平台应用程序,而是为了增加开发人员基础,可以编写win8应用程序。
答案 1 :(得分:18)
似乎情况发生了变化。 WinJS已在所有平台上推出......您可以在浏览器中尝试:try.buildwinjs.com
使用这个功能强大的Windows开发框架,在Windows以外的各种浏览器和设备上构建高质量的网络应用程序,包括Chrome,Firefox,Android和iOS。
答案 2 :(得分:5)
是的,这是使用lightswitch html组件完成的。
您可以下载并安装lightswitch,以查看使用winjs跨浏览器的示例。它使用promise对象等。
答案 3 :(得分:3)
winjs有一种替代方案可以在浏览器中使用:http://www.bluesky.io/但是还没有尝试过。
答案 4 :(得分:2)
如果您正在编写游戏,那么您可以轻松地在Metro应用程序和Web应用程序之间移植它们,而无需更改代码。这是因为你并没有真正使用WinJS库。
对于网络应用程序,我不建议,因为这意味着你不能使用WinRT框架。这也意味着你失去了很多功能。例如,搜索和共享魅力。这些主要用于Metro应用程序,但在Web应用程序中没有用处。
WinRT框架也针对性能进行了优化。因此建议您使用它而不是像jQuery或其他框架这样的框架。可能会慢一些。
您必须问自己的另一个问题:如果您可以为网络编写,为什么要将其转换为Metro应用程序?那是什么价值?
我想提出的最后一点如下:Web应用程序(目前)用于在线工作。使用metro应用程序时,您需要记住应用程序也需要脱机工作。这意味着额外的抽象。
像安德烈在答案中提到的那样。 HTML5 / JS仅提供了开发应用程序的额外方法。微软只是让更多人能够用他们熟悉的语言编写应用程序。