W3C APIs 兼容
Tabris实现了流行的W3C标准的一个子集。除了为Web开发人员提供熟悉的API之外,还可以使用为浏览器环境开发的库。
window对象
在JavaScript中总是有一个表示全局作用域的对象。所有全局变量都是此对象的成员。在Web浏览器中,该对象在Tabris.js中被命名为window
。 例如,tabris对象可以通过tabris
或 window.tabris
访问。
console对象
与浏览器一样,可以使用全局console
对象记录信息到开发者控制台:
console.log("A log message");
console.error("An error Message");
console.warn("A warning message");
console.info("An info message");
console.debug("A debug Message");
调用console.error
也会输出信息(即使开发者控制台关闭),但它不会中断脚本的执行。
计时器
Tabris支持计时器方法setTimeout
、setInterval
、clearTimeout
和 clearInterval
。参考window。
XMLHttpRequest
Tabris支持使用XMLHttpRequest
来进行HTTP请求并读取作为应用一部分的资源。
Tabris.js具体细节:
- 只支持异步请求。尝试同步请求将导致错误。
- 当使用相对路径时,Tabris.js会将其解析为相对于应用程序的
package.json
的路径。这允许你读取静态资源(项目文件夹中的文件)。 - 当使用定制的开发者客户端时,可以使用相对路径来访问本地文件(作为资源与客户端打包)以及在远程项目文件夹中(来自通过HTTP加载的代码)的那些文件。本地文件优先。
- 要启用对使用自签名证书的SSL保护资源的访问,请使用config.xml中的
UseStrictSSL
首选项。参见Cordova文档。
Fetch
作为XHR更强大和更灵活的替代方案,你还可以使用Fetch API。从Tabris.js 1.7开始,包括了这个API的实现。
要加载静态资源,使用相对于当前模块的URL可能更为方便。对于JSON文件,可以通过使用
require
方法而不是XHR来完成此操作。对于其他类型的文件,请使用__dirname
变量,例如xhr.open("GET", __dirname + "/foo.txt");
。
WebSocket
WebSockets是一种先进的技术,可以在用户的客户端和服务器之间打开交互式通信会话。使用此API,你可以将消息发送到服务器并接收事件驱动的响应,而无需轮询服务器获取回复。
截至Tabris.js 1.10,包含了该API的实现。
Tabris.js支持以
TypedArray
和ArrayBuffer
的形式发送和接收文本消息以及二进制数据。目前不支持以Blob
的形式接收数据。
更多文档:
- https://tools.ietf.org/html/rfc6455
- https://html.spec.whatwg.org/multipage/comms.html#websocket
持久存储
Tabris支持全局对象localStorage
,它允许在持久存储中存储键值对。键和值都作为字符串存储。
在iOS上,在全局作用域内还有一个额外的secureStorage
对象。这是将数据保存在加密的iOS钥匙链中的localStorage
的替代品。
Tabris.js具体细节:
- 目前,
localStorage
和secureStorage
支持setItem
、getItem
、removeItem
和clear
方法。 - 不支持
sessionStorage
,因为他它在非浏览器环境中没有应用场景。 - 目前不支持存储事件。
localStorage
仅用于存储较短的字符串。要存储大量数据,建议使用cordovaFileSystem
插件。
Canvas Context
Canvas
控件兼容HTML5 canvas的“2D Context”对象。参考Canvas。
Random Source (Crypto)
全局对象crypto
提供了RandomSource接口的实现。它可以用于生成加密安全随机数。