返回介绍

环境变量与 Framework

发布于 2019-12-26 23:51:14 字数 5494 浏览 1257 评论 0 收藏 0

Weex 环境变量

Weex 提供 WXEnvironment 用来获取 Weex 运行的环境变量,浏览 Weex 环境变量。
提供字段如下

  • platform (String) Current running platform, could be "Android", "iOS" or "Web".
  • weexVersion (String) The version of Weex SDK.
  • appName (String) Mobile app name or browser name.
  • appVersion (String) The version of current app.
  • osName (String) The OS name, could be "Android" or "iOS".
  • osVersion (String) The version of current OS.
  • deviceModel (String) Mobile phone device model. (native only)
  • deviceWidth (Number) Screen resolution width.
  • deviceHeight (Number) Screen resolution height.

Frameowrk

Native 和 Web 天生就有很多差异,为了让开发者有更好的体验,大部分的差异是不需要让开发者去关心的。因此 Native 端我们模拟出了大量 Web 端的标准全局 API。

初始化时机

访问 Weex 页面 -> 初始化 framework -> 执行页面 bundle

W3C API

部分依赖客户端提供能力,或者特殊逻辑的 API

API描述
name获取/设置窗口的名称
closedfalse ,一个只读的属性标识页面是否关闭
atob较早的 Weex 版本实现依赖 base64. Weex 新版实现依赖 native 能力
btoa较早的 Weex 版本实现依赖 base64. Weex 新版实现依赖 native 能力
performance性能数据,来自 framework 侧打点
documentcreateInstanceContext 过程中创建的 Document 实例
locationurl 相关功能不可写,assign、replace、reload 三个 api 来自客户端能力
navigator提供如下能力:product、platform、appName、appVersion、userAgent \n userAgent 示例: Weex/0.12 iOS/9.3 (iPhone7,2) AppName/0.12
screenwidth、height、availWidth、availHeigh、colorDepth、pixelDepth(weex 上 width 与 availWidth 值相同为 __weex_env__.deviceWidth height 与  availHeigh 为 __weex_env__.deviceHeight
devicePixelRatio设备像素比
fetch异步获取资源,依赖 Weex 模块 @weex-module/stream
setTimeout依赖 Weex 模块 @weex-module/timer 实现
clearTimeout依赖 Weex 模块 @weex-module/timer 实现
setInterval依赖 Weex 模块 @weex-module/timer 实现
clearInterval依赖 Weex 模块 @weex-module/timer 实现
requestAnimationFrame依赖 Weex 模块 @weex-module/timer 实现
cancelAnimationFrame依赖 Weex 模块 @weex-module/timer 实现
alert依赖 Weex 模块 @weex-module/modal 实现
open依赖 Weex 模块 @weex-module/navigator 实现
close依赖 Weex 模块 @weex-module/navigator 实现
postMessageWeex BroadcastChannel 能力
addEventListener跨页面监听使用 BroadcastChannel 能力,页面内监听使用内部的 Emitter
removeEventListener移除页面内消息监听
dispatchEvent页面内发送消息
onerror利用 globalEvent 监听页面错误信息

基于 JS Polyfill 实现抹平端差异的 API

API描述
Promise优先使用 Native 能力,用于表示一个异步操作的最终完成 (或失败), 及其结果值.
Symbol优先使用 Native 能力,创建 Symbol 数据类型实例,该类型具有静态属性和静态方法
Map优先使用 Native 能力,Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值
Set优先使用 Native 能力,Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用
WeakMap优先使用 Native 能力,一组键/值对的集合,其中的键是弱引用的。其键必须是对象,而值可以是任意的
WeakSet优先使用端上能力,允许你将弱保持对象存储在一个集合中
Headers构造方法创建一个新的Headers 对象.
Response构造函数创建了一个新的  Response 对象.
Request构造器创建一个新的Request 对象
XMLHttpRequest构造方法初始化一个XMLHttpRequest对象
URL构造函数返回一个新创建的 URL 对象
URLSearchParams构造器创建并返回一个新的 URLSearchParams 对象
FontFace构造器创建并返回一个新的 FontFace 对象
WebSocket提供了创建和管理到服务器的 websocket 连接以及发送和接收连接数据的 api
Event只有当DOM事件处理程序被调用的时候会被用到。它的值是当前正在处理的事件对象
CustomEvent构造方法 CustomerEvent() 创建一个新的 CustomEvent 对象。
matchMedia指定的媒体查询字符串解析后的结果

模块规范

API描述
define组件定义
require组件依赖,支持 Rax 组件与 Weex 原生模块,注意 Weex 模块需要以 @weex-module/ 开头

Weex 宿主对象

API描述
__weex_document__createInstanceContext 过程中创建的 Document 实例
__weex_module_supports__weex.isRegisteredModule
__weex_tag_supports__weex.isRegisteredComponent
__weex_define__组件定义
__weex_require__组件依赖,支持 Rax 组件与 Weex 原生模块,注意 Weex 模块需要以 @weex-module/ 开头
__weex_downgrade__页面降级方法,依赖 @weex-module/instanceWrap
__weex_env__WXEnvironment
__weex_options__创建 Instance 所传递的参数
__weex_data__创建 Instance 所传递的数据
__weex_config____weex_options__

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文