英文原文:Microsoft WinJS 3.0 Now Supports Multiple Platforms
通过支持多平台和一些主流浏览器,微软已经对 WinJS 进行了提升,并且已经将其模块化,使其能配合其他 JavaScript 函数库一起工作。
WinJS 3.0带来了一些新特性,其中最重要的是支持多平台,包括 Android 和 iOS,以及支持多浏览器-Chrome、Firefox、Safari 和 Android 浏览器。下表列出了目前 WinJS 支持的平台和浏览器组合:
从上表可以看出,WinJS 仍没有覆盖一些重要的浏览器-平台组合,其中最值得注意的是 Chrome/KitKat。一些组合也可能将不会得到支持,比如 Safari 和 Windows 的组合。WinJS 测试状态页面详细地描述了哪些平台没有通过哪些测试,以及没有通过的原因。测试结果每天都会进行若干次更新。
如果说 WinJS 起初是一个大函数库,那么现在它已经被划分为若干个模块。开发者可以根据需要组合和打包这些模块。开发者也可以在其他的 JavaScript 函数库或者框架中,如 Apache Cordova,使用 WinJS。
WinJS,或称作 JavaScript 的 Windows 函数库,一开始是一个提供给 Web 开发者的函数库,以便他们使用 HTML 和 JavaScript 编写 Windows 8 上的应用。后来,微软决定将其扩展到 Xbox 和 Windows Phone 上。接着,又将其做成一个跨平台和跨浏览器的工具包,几乎针对了各个方面。Try WinJS 网站表明他们快要达成目标了。尽管还有一些小问题,但基本上它能正常工作了。
根据 WinJS 的路线图,下一步将“完善与浏览器相关的工作...整合已存在的 WinJS 版本,并专注 WinJS 在移动设备上的开发”。然后将带来 SPA 工具集、新的 UI 控件,并且让 WinJS 能够和其他 JavaScript 工具集更好地进行交互,如 TypeScript、Cordova、Web Components 和 ECMAScript 6。
关于 WinJS 的疑问之一是,为什么微软会提供一个带有 Windows 8 界面风格的 JavaScript 函数库?谁会在 iOS 或者 Android 上用它替代原生界面?Free lance 上的一位记者 Tim Anderson 认为微软本身可能有兴趣写这类应用:
尤其是 CEO Satya Nadella 从 Steve Ballmer 手中接管公司之后,公司向外界传递的消息就是“任何设备”。当然,这些设备都会访问微软的服务。这也是向公司外的开发者传递的消息。看看目前微软 Azure 的宣传活动,其口号是“在任何设备上使用 Azure”。
Anderson 也相信此举对于一些企业应用来说可能是有意义的:
但也存在一些情况,比如对于内部商业应用,用户更关注应用的功能。当前股票的行情怎样?什么时候交付?显示这个顾客的订单历史记录。一个 WinJS 应用也许看上去不适合所运行的平台,但是友好的 UI 触控体验,容易推出跨主流移动平台的应用,这些可能会挑战苹果的设计准则。
不管这背后的原因是什么,WinJS 是一个面向多平台的、功能丰富的开源函数库。仍然需要看开发者们是否会采用它。源代码可以通过 GitHub 获得。