///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
declare namespace EJSNamespace {
interface OsType {
[key: string]: boolean | string;
}
interface Callback {
(result?: any): void;
}
interface CallbacksType {
[key: number | string]: Callback;
}
type IsOptional = { [K1 in Exclude]: T[K1] } & { [P in K]?: T[P] } extends T
? true
: false;
type IsAllOptional = {
[K in keyof T]: IsOptional;
} extends {
[K in keyof T]: true;
}
? true
: false;
type APIOptType = T & {
success?: (result: R) => void;
error?: Callback;
};
type APIType = IsAllOptional extends true
? (options?: APIOptType) => Promise
: (options: APIOptType) => Promise;
type APIStrType = (
...rest: IsAllOptional extends true ? [] | [APIOptType] | S : [APIOptType] | S
) => isLongCb extends true ? void : Promise;
type APILongCbType = (
options: T & {
success: (result: R) => void;
error?: Callback;
}
) => void;
interface RunCodeType {
(option?: any, resolve?: typeof Promise.resolve, reject?: typeof Promise.reject): void;
}
interface apiOpt {
/**
* 模块名,例如 ui
*/
moduleName?: string;
/**
* 命名空间,必填,例如 actionSheet
*/
namespace: string;
/**
* 支持的环境, 必填
*/
os: string[];
/**
* 支持的原生 ejs 最低版本号,选填
*/
support?: string;
/**
* API 的默认传参,选填
*/
defaultParams?: object;
/**
* API 的实现方法,选填,如不传该 API 默认调用原生方法实现
*/
runCode?: RunCodeType;
}
interface JSBridgeType {
/**
* 参数函数回调集合
*/
functionCallbacks: {
[key: number | string]: number[];
};
/**
* 本地注册的方法集合,原生只能调用本地注册的方法,否则会提示错误
*/
messageHandlers: CallbacksType;
/**
* 短期回调函数集合, 在原生调用完对应的方法后,会执行对应的回调函数id,并删除
*/
responseCallbacks: CallbacksType;
/**
* 长期存在的回调,调用后不会删除
*/
responseCallbacksLongTerm: CallbacksType;
/**
* 调用原生开放的方法
* @param proto 协议
* @param handlerName 方法名
* @param data 传参
* @param callback 回调
* @returns
*/
callHandler: (proto: string, handlerName: string, data: object, callback: number | Callback) => void;
/**
* 获得本地的长期回调, 每一次都是一个唯一的值
*/
getLongCallbackId: () => number;
/**
* 注册本地JS方法通过JSBridge给原生调用。
* 我们规定, 原生必须通过JSBridge来调用H5的方法。
* 注意, 这里一般对本地函数有一些要求, 要求第一个参数是data, 第二个参数是callback。
* @param handlerName 方法名
* @param handler 回调
* @returns
*/
registerHandler: (handlerName: string, handler: Callback) => void;
/**
* 注册长期回调到本地
* @param callbackId 回调id
* @param callback 回调
* @returns
*/
registerLongCallback: (callbackId: string, callback: Callback) => void;
/**
* 原生调用H5页面注册的方法,或者调用回调方法
* @param messageJSON 原生传递的结果
* @returns
*/
_handleMessageFromNative: (messageJSON: string) => void;
/**
* 函数参数执行回调
* @param messageJSON 原生传递的结果
* @returns
*/
_handleParamCallbackMessageFromNative: (messageJSON: string) => void;
/**
* 用于给原生在iframe跨域情况下给ejs的回调信息
* @param messageJSON 原生传递的结果
* @returns
*/
_handlePostMessage: (messageJSON: any) => void;
}
interface EJSType {
/**
* 供API内部调用,h5和原生交互,jsbridge核心代码
*/
JSBridge?: JSBridgeType;
/**
* 供API内部调用,Promise构造函数
*/
Promise: typeof Promise;
/**
* 供API内部调用,Proxy构造函数。
* 对所有的API进行统一参数预处理,promise逻辑支持等操作
*/
Proxy: {
new (api: apiOpt, callback: Callback): {
api: apiOpt;
apiName: string;
callback: Callback;
walk: (hy: EJSType) => (...rest: any[]) => void | Promise;
dispose: () => void;
};
};
/**
* 添加拦截器
*
* @param apiname 需要添加拦截器的 api 名称,示例:ui.actionSheet
* @param opt 拦截器配置,可配置invoke、success、error
*
* @support 全端兼容,EJS >= 4.2.1
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global)
* @example ```typescript
* ejs.addInterceptors('ui.actionSheet', {
* invoke(args) {
* // 调用前拦截, 修改传参
* args[0].items = ['远野贵树', '篠原明里', '澄田花苗'];
* },
* success(res) {
* // 成功回调拦截, 修改结果
* res.which = -1;
* res.content = '拦截器的结果';
* },
* error(err) {
* // 失败回调拦截
* console.log(err);
* }
* });
* ```
*
* @tips
* 1、若添加了多个同类型拦截器,调用时会一一触发。
*
* 2、调用时,所有invoke拦截器都会被一一触发,若所有拦截器都通过,即它们都没有返回false,则正常调用 API,反之则会中断 API 调用,逻辑类似Promise.all。
*
* 3、成功拦截和失败拦截仅支持规范的传递对象的调用方式,如ejs.ui.toast('信息')这样传递字符串的快速调用方式不支持。
*
* 4、建议在调用 API 之前添加拦截器,否则如事件监听这类 API 的成功回调,后添加的拦截器无法进行拦截,需要重新调用 API 进行事件注册。
*
* 5、拓展 API 同样可以使用拦截器,前提是需要符合以下规范:
*
* (1)调用时向 API 传递的参数必须是一个对象,否则拦截器无法修改传参。
*
* (2)成功和失败回调的拦截功能,前提是拓展 API 支持成功和失败的回调,若runCode中没有触发成功失败回调,则也不支持两种类型的拦截。
*
* (3)成功和失败回调的参数请设置为对象,否则拦截器也无法修改回调的结果。
*/
addInterceptors: (
/**
* 需要添加拦截器的 api 名称,示例:ui.actionSheet
*/
apiname: string,
/**
* 拦截器配置,可配置invoke、success、error
*/
opt: {
/**
* api 调用前触发,同步调用时:返回 false 代表中断调用,返回 true 或不返回则继续调用;异步调用时:需要返回一个 Promise,是否继续调用取决于该 Promise 的状态
*/
invoke?: (args: any) => void | boolean;
/**
* 成功回调前触发
*/
success?: Callback;
/**
* 失败回调前触发
*/
error?: Callback;
}
) => void;
/**
* 小程序生命周期事件
*
* @param params 小程序生命周期配置
*
* @support
* | ejs(H5 应用) | ejs(新点小程序) | H5 | 钉钉 | 微信小程序 | 支付宝小程序 |
* | :------------ | :---------------: | :----: | :----- | :--------- | :----------- |
* | 不支持 | 支持(4.0.0) | 不支持 | 不支持 | 不支持 | 不支持 |
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_app](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_app)
* @example ```typescript
* ejs.app({
* onLaunch: function () {
* console.log('小程序启动了');
* },
* onShow: function () {
* console.log('页面显示了');
* },
* onHide: function () {
* console.log('页面隐藏了');
* },
* onClose: function () {
* console.log('关闭小程序');
* }
* });
* ```
*
* @tips H5 或其他小程序平台,可以使用跨端框架新增的生命周期选项: [http://app.epoint.com.cn/m8mpdoc/?file=001-%E9%A1%B5%E9%9D%A2%E5%BC%80%E5%8F%91/009-%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F](http://app.epoint.com.cn/m8mpdoc/?file=001-%E9%A1%B5%E9%9D%A2%E5%BC%80%E5%8F%91/009-%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F)
*/
app: (params: {
/**
* 小程序打开时触发
*/
onLaunch?: () => void;
/**
* 当页面显示时触发
*/
onShow?: () => void;
/**
* 当页面隐藏时触发
*/
onHide?: () => void;
/**
* 当关闭小程序时触发
*/
onClose?: () => void;
}) => void;
/**
* audio音频模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_audio](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_audio)
*/
audio?: audioType;
/**
* auth模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_auth](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_auth)
*/
auth?: authType;
/**
* basicCard模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_basicCard](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_basicCard)
*/
basicCard?: basicCardType;
/**
* 调用自定义 API,只能调用EJS环境下的 API
*
* 注,请不要调尝试用框架标准 API,以下仅作示例
*
* @support 仅EJS环境支持
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global)
* @example ```typescript
* ejs.callApi({
* name: 'alert',
* mudule: 'ui',
* isLongCb: 0,
* data: {
* title: '标题',
* message: '信息',
* },
* success: function (result) {
* // 回调的参数由具体的自定义API决定
* },
* error: function (error) {}
* });
* ```
*/
callApi: APIType<
{
/**
* API的名字,例如 alert
*/
name: string;
/**
* API的模块名, 例如 ui
*/
mudule: string;
/**
* 是否是长期回调,1代表长期回调,0代表短期回调,短期回调调用一次后会自动回收,长期回调可以一直触发,默认为0
*/
isLongCb?: number;
/**
* 需要传递给原生的数据,例如 { key1: "value1" },具体数据由对应 API 决定
*/
data?: object;
/**
* 容器版本,用于容器组件版本校验
*/
appVersion?: string;
},
any
>;
/**
* 供API内部调用的,this指针被指向了proxy对象,方便处理
*/
callInner?: RunCodeType;
/**
* 供API内部调用,同callApi, 调用原生自定义API
*/
callNativeApi?: EJSType['callApi'];
/**
* 初始化校验,必须调用
*
* @param params 鉴权配置
*
* 注,如果没有组件API需要注册,可以传空,注册组件时,必须容器支持对应组件才能注册成功。
*
* 同时,config内部也会进行一些其它验证,譬如白名单验证(根据实际需求而定),如果没有通过验证,则无法触发ready。
*
* 另外,在钉钉、企业微信和政务微信下可使用自动化鉴权功能,否则降级成为调用后直接触发ready回调。
*
* @support 除了官方weex端外,其他端都兼容
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global)
* @example ```typescript
* ejs.config({
* isAutoConfig: 0,
* preUrl: 'http://192.168.217.151/950ePaaS/',
* token: '123456',
* ajax: Util.ajax,
* agentId: '123',
* jsApiList: [
* {
* pay: ejs.os.ios ? 'EJSPayApi' : 'com.epoint.ejs.api.PayApi'
* }
* ]
* });
* ```
*
* @tips
*
* 1、小程序应用的API不需要鉴权
*
* 2、在EJS容器中,H5应用除了部分API不需要权限外,其余API都需要权限校验成功后才能调用(也就是ready之后)
*
* 3、H5和DD下的兼容API都不需要权限。
*
* 4、ISV应用不能调用EJS系统级API
*/
config: (params: {
/**
* 非ejs环境下是否使用自动化鉴权功能,示例:1、0
*
* @support 仅钉钉、企业微信和政务微信支持
*/
isAutoConfig?: number;
/**
* 自动化鉴权时需要提供统一认证地址,示例:http://192.168.217.151/950ePaaS/
*
* @support 仅钉钉、企业微信和政务微信支持
*/
preUrl?: string;
/**
* 自动化鉴权时需要提供token,可选;
* 传入框架封装的ajax方法时可进行自动代理,自动代理情况下不必传入token,若传了token,则会使用传入的token。
*
* @support 仅钉钉、企业微信和政务微信支持
*/
token?: string;
/**
* 自动化鉴权时需传入封装的ajax方法,用于请求接口
*
* @support 仅钉钉、企业微信和政务微信支持
*/
ajax?: any;
/**
* 政务微信或企业微信进行应用身份鉴权时需要传递应用id
*
* @support 仅企业微信和政务微信支持
*/
agentId?: string;
/**
* 需要注册的组件 API 信息,除了框架中的组件外,其它新增的组件使用时都需要通过这个入口注册;
*
* jsApiList中每一个item的参数为key、value形式,其中value为对应类的包名,Android和iOS下有区别;
*
* 在钉钉、企业微信和政务微信下传入需要调用的API。
*/
jsApiList?: {
[key: string]: string;
}[];
/**
* 支持个性化传参
*/
[x: string]: any;
}) => void;
/**
* contact模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_contact](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_contact)
*/
contact?: contactType;
/**
* device模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_device](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_device)
*/
device?: deviceType;
/**
* 处理错误信息,ejs.error参数为回调函数,在容器或EJS框架捕获到错误时,都会触发这个回调
* @param callback 回调函数
* @returns
* @support 全端兼容
*/
error: (callback: Callback) => void;
/**
* event模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_event](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_event)
*/
event?: eventType;
/**
* 供API内部调用,在某一个模块下拓展一个API
* @param moduleName 模块名
* @param apiParam 方法参数
* @param hy ejs对象
* @returns
*/
extendApi: (moduleName: string, apiParam: apiOpt, hy: EJSType) => void;
/**
* 拓展模块 API。若需要在 ejs 上拓展一个新模块,或者在已有的模块上拓展一个 API,可以调用该方法
*
* @param moduleName 模块名
* @param apis 模块下拓展的 API 数组
*
* @support 全端兼容
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global)
* @example ```typescript
* ejs.extendModule('device', [
* {
* namespace: 'callPhone',
* os: ['h5'],
* defaultParams: {
* phoneNum: ''
* },
* runCode(options, resolve, reject) {
* // 函数调用后执行的方法,回调参数第一项是函数调用时的传参,可能有第二个参数是 resolve,用于支持 promise 调用
* const phoneNum = options.phoneNum;
* window.location.href = `tel:${phoneNum}`;
* options.success && options.success();
* resolve && resolve();
* }
* }
* ]);
* ```
*
* @tips ejs框架默认支持的环境列表:
*
* [
*
* dd, // 钉钉
*
* xm, // 迅盟
*
* wxWorkLocal, // 政务微信
*
* wxWork, // 企业微信
*
* wechat, // 微信
*
* welink, // welink 容器
*
* ddGov, // 政务钉钉
*
* alipay, // 支付宝容器
*
* miniH5, // 新点小程序
*
* primordial, // ejs 原生门户
*
* ejs, // ejs 原生容器
*
* h5 // H5 环境
*
* ]
*/
extendModule: (
/**
* 模块的名称
*/
moduleName: string,
/**
* 模块下拓展的 API 数组
*/
apis: apiOpt[]
) => void;
/**
* 拓展 OS。拓展 API 时,若该 API 支持的环境不在目前支持的环境列表中,则需要拓展一个新的支持环境,可以调用该方法进行拓展
*
* @param os 支持的环境参数,必填
* @param cb 拓展时调用的回调函数,必填
*
* @support 全端兼容,支持版本 EJS >= 4.1.9-sp1
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global)
* @example ```typescript
* ejs.extendOS('ejs', function (os) {
* const ejs = navigator.userAgent.match(/EpointEJS/i);
* if (ejs) {
* os.ejs = true;
* }
* });
* ```
*/
extendOS: (
/**
* 支持的环境参数,必填
*/
os: string,
/**
* 拓展时调用的回调函数,必填
*/
cb: (os: OsType) => void
) => void;
/**
* 供API内部调用,获取Promise
*/
getPromise: () => typeof Promise;
/**
* 供API内部调用,全局错误提示
*/
globalError: {
[key: string]: {
code: number;
msg: string;
};
};
/**
* 供API内部调用,内部工具方法
*/
innerUtil: {
extend(target: any, ...nums: any): any;
isObject(object: any): boolean;
getFullPath(path: string): string;
getFullUrlByParams(url: string, data: any, type?: boolean): string;
eclipseText(str: string, count: number): string;
compatibleStringParamsToObject(args: any, ...rest: any): any;
eclipseButtonsNumber(arr: [], maximum: number): [];
getBase64NotUrl(base64: string): string;
};
/**
* io模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_io](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_io)
*/
io?: ioType;
/**
* miniH5模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_miniH5](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_miniH5)
*/
miniH5?: miniH5Type;
/**
* navigator模块
*
* 该模块针对 EJS 原生导航栏提供系列 API,供 H5 开发使用。而在非 EJS 环境中,只兼容了很小一部分功能,ejs-weex 环境不支持。
*
* 对于其他平台修改导航栏标题样式,在跨端框架中,可以通过配置pages.json或者使用页面配置节点navigation-bar来进行修改,也可以隐藏原生导航栏(支付宝小程序不支持隐藏导航栏),自定义导航栏来完成更复杂的样式功能。
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_navigator](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_navigator)
*/
navigator?: navigatorType;
/**
* 判断当前的运行环境
*
* @support 全端兼容
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global)
* @example ```typescript
* 系统环境判断
* // Android环境与iOS只会有一个为true
* ejs.os.android;
* ejs.os.ios;
* // 鸿蒙环境判断在4.2.19-beta.1版本开始支持
* ejs.os.harmonyOs;
*
* 容器环境判断
* // 在对应的容器中对应字段会为true
* // `EJS`容器
* ejs.os.ejs;
* // epoint小程序容器
* ejs.os.miniH5;
* // 卡片加载环境是否是原生门户
* ejs.os.ejsCard;
* // `钉钉`容器
* ejs.os.dd;
* // `微信`容器
* ejs.os.wechat;
* // `企业微信`容器
* ejs.os.wxWork;
* // `政务微信`容器
* ejs.os.wxWorkLocal;
* // welink容器
* ejs.os.welink;
* // 讯盟容器
* ejs.os.xm;
* // 政务钉钉容器
* ejs.os.ddGov;
* // 支付宝容器
* ejs.os.alipay;
* // 如果ejs和钉钉都不是,则默认是h5环境, `其它`(包括普通浏览器)容器
* ejs.os.h5;
*
* 更多功能
* // Android环境下
* // 获取Android的版本号以及是否是非Chrome的Android环境
* ejs.os.version;
* ejs.os.isBadAndroid;
* // iOS环境下
* // 获取iOS的版本号以及是否是苹果手机,是否是pad
* ejs.os.version;
* ejs.os.iphone;
* ejs.os.ipad;
* // 无windows环境,一般指其他平台的小程序环境
* ejs.os.miniprogram;
* ```
*/
os: OsType;
/**
* page模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_page](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_page)
*/
page: pageType;
/**
* 验证成功后的回调,ejs.ready参数为回调函数,在初始化完毕,并且config验证完毕后会触发,任何相关操作请在回调函数后执行
*
* 如果验证失败,不会走ready,而是会走error
*
* ready只会触发一次,所以如果同时设置两个,第二个ready回调会无效。
*
* @param callback 回调函数
*
* @support 除了官方weex端外,其他端都兼容
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global)
* @example ```typescript
* ejs.ready(function () {
* // TODO: 处理成功后的逻辑,ejs需要权限的API只有在ready触发后才能被正确调用
* });
* ```
*/
ready: (callback: Callback) => void;
/**
* 删除拦截器
*
* @param apiname 需要删除拦截器的 api 名称,示例:ui.toast
* @param type 需要删除的拦截器类型,不填则删除该 API 所有类型拦截器,可选值:invoke、success、error
*
* @support 全端兼容,支持版本 EJS >= 4.2.1
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_global)
* @example ```typescript
* ejs.removeInterceptors('ui.toast', 'invoke');
* ```
*/
removeInterceptors: (
/**
* 需要删除拦截器的 api 名称,示例:ui.toast
*/
apiname: string,
/**
* 需要删除的拦截器类型,不填则删除该 API 所有类型拦截器,
* 可选值:invoke、success、error
*/
type?: string
) => void;
/**
* runtime模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_runtime](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_runtime)
*/
runtime?: runtimeType;
/**
* 供API内部调用,设置Promise
* @param newPromise Promise
* @returns
*/
setPromise: (newPromise: typeof Promise) => void;
/**
* 供API内部调用,提示全局错误
* @param code 错误码
* @param msg 错误提示信息
* @returns
*/
showError: (code: number, msg: string) => void;
/**
* storage模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_storage](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_storage)
*
* EJS容器下的存储,原生容器中的键值对,必须通过storageAPI 才能获取出来
*
* 如果需要获取或修改框架键值对,建议通过自定义 API 方式
*
* 注意:
*
* 1. 在H5和DD下,为localStorage,浏览器限制 5M 大小,是缓存概念,可能会被清理;
*
* 2. EJS容器下的存储,必须通过storageAPI 才能获取出来,无大小限制,不是缓存,是持久化的;
*
* 3. 各个小程序端为其自带的 storage api,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
*
* 4. 微信小程序单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB;
*
* 5. 支付宝小程序单条数据转换成字符串后,字符串长度最大 200*1024。同一个支付宝用户,同一个小程序缓存总上限为 10MB。
*/
storage?: storageType;
/**
* stream模块
*
* 文档: [http://app.epoint.com.cn/ejsdoc/index/index.php#page=api_stream](http://app.epoint.com.cn/ejsdoc/index/index.php#page=api_stream)
*/
stream?: streamType;
/**
* 供API内部调用,支持的os列表,数组的顺序很重要,不能随便修改
*/
supportOsArray: string[];
/**
* ui模块
*
* 该模块传递参数`h5UI: true`时需要引入包含 H5 环境的库。
*
* **注意:在跨端框架中 UI 模块调用的是跨端组件,请不要在 beforeCreate、created、beforeMount、onLoad 等生命周期中调用该模块 API,此时页面节点未渲染,必须在 mounted 及其之后中调用**
*
* 文档: [http://app.epoint.com.cn/ejsdoc/index/index.php#page=api_ui](http://app.epoint.com.cn/ejsdoc/index/index.php#page=api_ui)
*/
ui: uiType;
/**
* util模块
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_util](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=api_util)
*/
util?: utilType;
/**
* ejs版本号
*/
version: string;
/**
* 支持拓展其他模块
*/
[key: string]: any;
}
}
/**
* ejs库
*
* 文档: [http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=changelog](http://app.epoint.com.cn/ejs4mpdoc/index/index.php#page=changelog)
*/
declare const ejs: EJSNamespace.EJSType;
declare module '@epoint-mrc/ejsv4' {
export const ejs: EJSNamespace.EJSType;
}