1.1.3 • Published 7 years ago

@tiaod/weapp-polyfill v1.1.3

Weekly downloads
-
License
MIT
Repository
-
Last release
7 years ago

weapp-polyfill npm

Polyfills for w3c API on top of Weapp API, including:

  • XMLHttpRequest
  • FormData
  • WebSocket
  • localStorage

Why

微信小程序设计了一系列 IO 相关的 API,但社区中现存的模块绝大部分使用的是 w3c 标准的 API。本项目通过 polyfill 这些 w3c API 允许开发者在不修改第三方模块代码的情况下直接在小程序中使用这些模块。

Usage

npm i weapp-polyfill -D

如果你的应用或 SDK 使用打包工具(打包成一个文件后再导入微信开发工具使用),你可以在程序入口的最开始 auto polyfill 所有 API

require('weapp-polyfill/auto-polyfill');

即可在整个项目中直接使用浏览器 API。See a realworld demo

weapp-polyfill pacakge 本身 export 了以下对象:

const {
  XMLHttpRequest,·
  FormData,
  WebSocket,
  localStorage,
  polyfill,
} = requrie('weapp-polyfill');

不支持不使用打包工具直接在微信开发工具使用。

Caveats

由于微信 API 的限制,polyfill 的 API 有以下限制:

XMLHttpRequest

  • Response Headers 无法获得,getResponseHeade('content-type') 始终返回 'application/json',其他 key 始终返回 ''
  • 不支持上传进度
  • 不支持 abort
  • 不会出现HEADERS_RECEIVEDLOADING 状态

FormData

  • Blob 被定义为一个拥有 uri 属性的对象,uri 的值为通过微信 API 得到的本地临时文件路径:{ uri: 'tempFilePath' }
  • 如果一个 FormData append 了多个 blob,只有第一个会被发送

WebSocket

  • 不支持 subprotocal
  • 不支持二进制帧
1.1.3

7 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago