全局 API

    appEnv

    平台环境变量,不同平台其取值对应不同平台的环境对象:

    • 微信小程序:wx
    • 支付宝小程序:my
    • 头条小程序:tt
    • 快应用:取值同 appGlobal,见下面说明

    如果想访问原生 API 定义,可以直接 appEnv.getSystemInfo() 形式访问,环境变量除了 快应用 外,原生定义的所有 API 都可以通过下面 api 对象访问,具体区别可以见下面说明。

    appGlobal

    全局对象,具体定义除了快应用外,其它小程序平台定义如下:

    快应用定义:

    api

    平台提供的 API,都可以通过该对象访问到,同 app componentpage 上下文定义的 $api 相同。

    appEnv 获取到的 API 区别是,该对象定义的 API 可能会发生修改,比如,比如对 getSystemInfo 经过 promise 化 转换后,appEnv.getSystemInfo() 接口定义还是同原生,但 api.getSystemInfo() 返回的是 promise

    此外,该对象定义的 API 目标是希望各个平台对齐的,开发者也可以自行对 api 对象下挂载的接口进行扩展或者对齐,具体可以参考特定平台 API 实现

    因此,建议开发者直接使用 api 对象来访问平台提供的 API。

    获取当前 App 实例,快应用实现跟其它小程序平台稍微有所差异:

    • 快应用:目前返回的是 app 信息,通过该模块 获取
    • 小程序:直接使用原生提供的 getApp() 全局 API 获取

    getCurrPages

    获取当前打开的页面实例数组,快应用实现跟其它小程序平台稍微有所差异:

    • 快应用:返回 null,暂不支持
    • 小程序:直接使用原生提供的 getCurrentPages 全局 API 获取

    request

    • request.get(url, options): 发起一个 GET 请求,请求选项可以参考原生请求接口

    • request.post(url, options): 发起一个 POST 请求

    • request.fetch(url, options): 发起自定义 Method 请求

    • request.request(options): 同原生 request API,支持返回 Promise

    platform

    平台信息相关接口定义,基于 api.getSystemInfo() 获取,由于信息获取是异步的,为了保证信息可用性,需要使用下面 ensure API 进行包裹。

    • ensure(callback): 确保平台信息已经可用,只有当信息可用了,下面的 API 才可以直接访问,该接口同时会缓存获取的系统信息,下次再访问如果缓存可用,直接返回缓存的平台信息

    • setPlatformInfo(systemInfo): 手动设置平台信息,如果不想基于 ensure 来确保可用,可以外部直接获取后,调用该接口设置下,系统信息会被缓存

    • getPlatformInfo(): Object: 获取平台信息

    • isAndroid(): boolean: 是否是安卓操作系统

    • isSDKVersionLt(version): boolean: 判断当前的 sdk 版本是否小于给定的版本号(是否当前版本比较老)

    • isSDKVersionLte(version): boolean: 判断当前的 sdk 版本是否小于给定的版本号或者一样

    • isSDKVersionGt(version): boolean: 判断当前的 sdk 版本是否大于给定的版本号(是否当前版本更新)

    • isSDKVersionGte(version): boolean: 判断当前的 sdk 版本是否大于给定的版本号或者一样

    • isSDKVersionEq(version): boolean: 判断当前的 sdk 版本是否同给定的版本号一样

    各个平台对齐的 API

    目前未提供对齐的 API 或者组件,开发者可以参考撰写特定平台代码实现不同平台对齐。同时,我们也非常希望开发者把自己对齐的 API/组件 也可以开源出来,以帮助更多开发者,如果能直接发 pr 贡献到 okam 最好。

    下面列出的 API 是各个平台已经对齐的接口,没列出来,表示我们未做任何对齐实现,具体是否需要对齐需要开发者自行调研。如果开发者,想覆盖掉默认的对齐实现也是允许的,实现方式跟新增要对齐 API。

    百度小程序

    支付宝小程序

    • showToast
    • getSystemInfo
    • getSystemInfoSync
    • setNavigationBarTitle

    头条小程序

    • getSystemInfo
    • showToast
    • request
    • navigateBack