环境变量与 Framework
优质
小牛编辑
140浏览
2023-12-01
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 | 获取/设置窗口的名称 |
closed | false ,一个只读的属性标识页面是否关闭 |
atob | 较早的 Weex 版本实现依赖 base64. Weex 新版实现依赖 native 能力 |
btoa | 较早的 Weex 版本实现依赖 base64. Weex 新版实现依赖 native 能力 |
performance | 性能数据,来自 framework 侧打点 |
document | createInstanceContext 过程中创建的 Document 实例 |
location | url 相关功能不可写,assign、replace、reload 三个 api 来自客户端能力 |
navigator | 提供如下能力:product、platform、appName、appVersion、userAgent \n userAgent 示例: Weex/0.12 iOS/9.3 (iPhone7,2) AppName/0.12 |
screen | width、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 实现 |
postMessage | Weex 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__ |