interface UploadData { access_key_id: string; accessKey_secret: string; token: string; expire_at: number; bucket: string; oss_name: 'jd' | 'qiniu'; endpoint: string; key: string; photo_id: number; upload_url: string; content_type: string; } interface UploadImageOptions { ossName?: 'jd' | 'qiniu'; type: 'OPS' | 'BLOG' | 'ALBUM_COVER' | 'ARTICLE' | 'VIDEO' | 'COMMENT' | 'AVATAR' | 'PROFILE' | 'ACTIVITY' | 'SHORT_VIDEO' | 'SHORT_VIDEO_COVER' | 'LUT_FILE'; host?: string; onprogress?: (event: ProgressEvent) => void; onProgress?: (event: ProgressEvent) => void; onUploadProgress?: (event: ProgressEvent) => void; onApplyForToken?: (uploadData: UploadData) => void; } interface UploadResult { key: string; photo_width: number; photo_height: number; photo_id: number; } /** * * @param file 上传的文件 * @param options { ossName: oss名称,默认'jd', type: 图片的用途,枚举, onProgress?: 下载进度回调, onprogress?: 下载进度回调, onUploadProgress?: 上传进度回调, onApplyForToken?: 拿到上传token等信息时的回调 } * @returns Promise<{ key: string; photo_width: number; photo_height: number; photo_id: number; }> */ declare const uploadImage: (file: File, { ossName, type, onprogress, onProgress, onUploadProgress, onApplyForToken, host, }: UploadImageOptions) => Promise; interface PrivateUrlParams { urls: string[]; expireSec: number; } /** * @description 批量获取屏蔽图片私有bucket的url * @param params params: { urls: Urls, expireSec: ExpireSec } * @type params.urls: string[], key eg. https://c-ssl.dtstatic.com/uploads/people/201411/01/20141101142720_aYcdX.jpeg * @type params.expireSec?: number, expire second, default 3600 * @param isBlockingList isBlockingList?: boolean[], 『是否是屏蔽图片』list,与urls对应 * @param callback?: (url: string, index?: number, normal?: boolean) => void, 每张屏蔽图片验证完的回调, 可能是blobURL或httpURL(非屏蔽图片)。在这个callback里你需要将url设置给你要展示的图片list的对应index。normal: 该图片是正常的还是私有屏蔽 * @return urlList: Promise, 如果某个url结果是''则代表不确定图片在哪个bucket,需要自己验证哪个bucket可以访问,可以使用callback或者自己使用verifyImageAccessibility验证 */ declare const getPrivateUrlOfImages: (params: PrivateUrlParams, isBlockingList: boolean[], callback?: ((url: string, index?: number | undefined, normal?: boolean | undefined) => void) | undefined) => Promise; /** * @description 将被裁剪或缩放的图片还原成原图 * @param url 图片地址 * @param suffixTrim 是否将静态图还原成gif(原图是gif) * @returns */ declare const dtImageOrigin: (url: string, suffixTrim: boolean) => string; /** * @description 是否是堆糖域名的图片 * @param url * @returns */ declare const isDuitangImage: (url: string) => boolean; /** * @description 将图片裁剪成指定宽度的方图 如果浏览器支持webp,默认转成webp格式,转gif为静态图 * @param url 要裁剪的图片地址 * @param width 期望的图片宽度 * @returns 裁剪后的图片地址 */ declare const dtImageSquare: (url: string, width: number) => string; /** * @description 将图片裁剪成指定宽度的高度自适应图片 如果浏览器支持webp,默认转成webp格式,转gif为静态图 * @param url 要裁剪的图片地址 * @param width 期望的图片宽度 * @returns 裁剪后的图片地址 */ declare const dtImageThumb: (url: string, width: number) => string; /** * @description 缩放成指定宽度的方图。如果是webp转成非webp图片 * @param url 图片地址 * @param width 指定的宽度 * @returns 处理后的图片地址 */ declare const dtImageSquareNoWebp: (url: string, width: number) => string; /** * @description 缩放成指定宽度、高度自适应的图片 如果是webp转成非webp图片 * @param url 图片地址 * @param width 指定的宽度 * @returns 处理后的图片地址 */ declare const dtImageThumbNoWebp: (url: string, width: number) => string; /** * @description 去掉webp后缀 * @param url 图片地址 * @returns 处理后的图片地址 */ declare const dtImageNoWebp: (url: string) => string; /** * @description 缩放成指定宽度、高度自适应的图片 默认保留gif动图 其他类型如png、jpeg等加webp格式 * @param url 图片地址 * @param width 指定的宽度 * @returns 处理后的图片地址 */ declare const dtImageThumbOnlyNoWebpForGif: (url: string, width: number) => string; /** * @description 缩放成指定宽度的方图 默认保留gif动图 其他类型如png、jpeg等加webp格式 * @param url 图片地址 * @param width 指定的宽度 * @returns 处理后的图片地址 */ declare const dtImageSquareOnlyNoWebpForGif: (url: string, width: number) => string; /** * @description 缩放成指定宽度、高度自适应的图片。可配置是否将gif动图转成静态图、是否转成webp格式。 * @param url 图片地址 * @param width 期望宽度 * @param gifTrans 是否将gif转成静态图,默认是 * @param webpTrans 若浏览器支持,是否将转成webp格式,默认是 * @returns 被裁剪后的图片地址 */ declare const dtThumb: (url: string, width: number, gifTrans?: boolean, webpTrans?: boolean) => string; /** * @description 裁剪成指定宽度的方图,若原图比例不是方图,以居中位置裁剪。可配置是否将gif动图转成静态图、是否转成webp格式。 * @param url 图片地址 * @param width 期望宽度 * @param gifTrans 是否将gif转成静态图,默认是 * @param webpTrans 若浏览器支持,是否将转成webp格式,默认是 * @returns 被裁剪后的图片地址 */ declare const dtSquare: (url: string, width: number, gifTrans?: boolean, webpTrans?: boolean) => string; /** * 验证url的可访问性,返回携带blobURL或""的promise * @param urls 图片url数组, 如果url_1不可用会自动验证url_2以此类推, 都不可用则返回Promise<""> * @return Promise */ declare const verifyImageAccessibility: (urls: string[], callback?: ((url: string, index?: number | undefined) => void) | undefined) => Promise; declare const DtImageTools: { dtImageOrigin: (url: string, suffixTrim: boolean) => string; isDuitangImage: (url: string) => boolean; dtImageSquare: (url: string, width: number) => string; dtImageThumb: (url: string, width: number) => string; dtImageSquareNoWebp: (url: string, width: number) => string; dtImageThumbNoWebp: (url: string, width: number) => string; dtImageNoWebp: (url: string) => string; dtImageThumbOnlyNoWebpForGif: (url: string, width: number) => string; dtImageSquareOnlyNoWebpForGif: (url: string, width: number) => string; dtThumb: (url: string, width: number, gifTrans?: boolean, webpTrans?: boolean) => string; dtSquare: (url: string, width: number, gifTrans?: boolean, webpTrans?: boolean) => string; verifyImageAccessibility: (urls: string[], callback?: ((url: string, index?: number | undefined) => void) | undefined) => Promise; getPrivateUrlOfImages: (params: PrivateUrlParams, isBlockingList: boolean[], callback?: ((url: string, index?: number | undefined, normal?: boolean | undefined) => void) | undefined) => Promise; uploadImage: (file: File, { ossName, type, onprogress, onProgress, onUploadProgress, onApplyForToken, host, }: UploadImageOptions) => Promise; }; declare const testUa: (r: RegExp) => boolean; declare const isDuiTang: () => boolean; declare const isNaiYou: () => boolean; declare const isInApp: () => boolean; declare const isWeiXin: () => boolean; declare const isQQ: () => boolean; declare const isWeiBo: () => boolean; declare const isMEIZU: () => boolean; declare const getPhoneType: () => string; declare const getAppVersion: (str: string) => string | null; /** * 描述:比较两个app version 大小, a > b 返回 1. a = b 返回 0. a < b 返回 -1. * 参数: * a - (Str) 要比较的版本号 * b - (Str) 要比较的版本号 **/ declare const appVersionCompare: (a: string, b: string) => number; declare const isIos: () => boolean; declare const isAndroid: () => boolean; declare const isWindowsPhone: () => boolean; declare const isSymbian: () => boolean; declare const isFireFox: () => boolean; declare const isChrome: () => boolean; declare const isTablet: () => boolean; declare const isPhone: () => boolean; declare const isPc: () => boolean; declare const sdkVersion: () => number; /** * 是否支持全屏撑顶 * @returns {boolean} true 支持 false 不支持 */ declare const isSupportFull: () => boolean; declare const DtPlatform: { testUa: (r: RegExp) => boolean; isDuiTang: () => boolean; isNaiYou: () => boolean; isInApp: () => boolean; isWeiXin: () => boolean; isQQ: () => boolean; isWeiBo: () => boolean; isMEIZU: () => boolean; getPhoneType: () => string; getAppVersion: (str: string) => string | null; appVersionCompare: (a: string, b: string) => number; isIos: () => boolean; isAndroid: () => boolean; isWindowsPhone: () => boolean; isSymbian: () => boolean; isFireFox: () => boolean; isChrome: () => boolean; isTablet: () => boolean; isPhone: () => boolean; isPc: () => boolean; sdkVersion: () => number; isSupportFull: () => boolean; }; declare type SdkFunction = (data: any, callback?: any) => void; interface DtSdkType { isInit: boolean; init: () => void; VERSION: number; sdkVersion: () => number; cacheData: Record; ready: (callback: () => void) => void; responseNotification: ((params: { name: string; data?: any; [key: string]: any; }) => void)[] | ((params: Record) => void); responseNavigationClick: (params?: Record) => void; responseNavigationButtonsClick: (params?: Record) => void; notification: SdkFunction; closeUrl: SdkFunction; openUrl: SdkFunction; alipay: SdkFunction; isLogin: SdkFunction; login: SdkFunction; setNavigation: SdkFunction; trc: SdkFunction; showAlertInfoView: SdkFunction; showAlertView: SdkFunction; socialShare: SdkFunction; blogComment: SdkFunction; blogZan: SdkFunction; blogLike: SdkFunction; blogForward: SdkFunction; blogCreate: SdkFunction; selectionAlbumFeedback: SdkFunction; photoBrowse: SdkFunction; albumChoose: SdkFunction; titleChange: SdkFunction; httpRequest: SdkFunction; wxpay: SdkFunction; dtraceLog: SdkFunction; getDeviceInfo: SdkFunction; setHandleBackButton: SdkFunction; getAddress: SdkFunction; musicAction: SdkFunction; commentMoreAction: SdkFunction; responseCheckInfo: SdkFunction; showHtmlDialog: SdkFunction; hideHtmlDialog: SdkFunction; setNavigationButtons: SdkFunction; webPageDidLoad: SdkFunction; videoAction: SdkFunction; dismissFullCardView: SdkFunction; startRecording: SdkFunction; stopRecording: SdkFunction; topVideoAction: SdkFunction; setTopVideoState: SdkFunction; popKeyboard: SdkFunction; closeKeyboard: SdkFunction; commentLongClick: SdkFunction; setShopSearchKeyword: SdkFunction; getTopVideoInfo: SdkFunction; dtraceEventSpreadStart: SdkFunction; dtraceEventSpreadEnd: SdkFunction; setRecordSettings: SdkFunction; setScrollPosition: SdkFunction; dismissHomePromotionPage: SdkFunction; getNetworkInfo: SdkFunction; getAppLocation: SdkFunction; keyboardUp: SdkFunction; asyncTaskInspire: SdkFunction; setDataToNative: SdkFunction; getDataFromNative: SdkFunction; viewVideoAd: SdkFunction; viewPopBannerAd: SdkFunction; dismissPopBannerAd: SdkFunction; wechatAuthorization: SdkFunction; imagesUpload: SdkFunction; mediaDownload: SdkFunction; tiktokShare: SdkFunction; widgetConfig: SdkFunction; applePay: SdkFunction; alipaySingle: SdkFunction; payment: SdkFunction; dtrace: SdkFunction; getTouristInfo: SdkFunction; useTemplate: SdkFunction; imageBase64sWithUrlsUpload: SdkFunction; getAuth: SdkFunction; getTeenModeInfo: SdkFunction; findPasswordByPhoneNumber: SdkFunction; openWatermarkEditor: SdkFunction; getDeviceInfoStr: SdkFunction; } declare const DtSdk: DtSdkType; interface Point { x: number; y: number; } declare const getDistance: (p1: Point, p2: Point) => number; declare const rotatePoint: (point: Point, rad: number) => Point; declare function segmentsIntr(a: Point, b: Point, c: Point, d: Point): Point | false; declare const lineIncludedAngle: (x1: number, y1: number, x2: number, y2: number, baseDeg: number) => number | void; /** * HSL颜色值转换为RGB. * 换算公式改编自 http://en.wikipedia.org/wiki/HSL_color_space. * h, s, 和 l 设定在 [0, 1] 之间 * 返回的 r, g, 和 b 在 [0, 255]之间 * * @param Number h 色相 * @param Number s 饱和度 * @param Number l 亮度 * @return Array RGB色值数值 */ declare function hslToRgb(h: number, s: number, l: number): number[]; /** * RGB 颜色值转换为 HSL. * 转换公式参考自 http://en.wikipedia.org/wiki/HSL_color_space. * r, g, 和 b 需要在 [0, 255] 范围内 * 返回的 h, s, 和 l 在 [0, 1] 之间 * * @param Number r 红色色值 * @param Number g 绿色色值 * @param Number b 蓝色色值 * @return Array HSL各值数组 */ declare function rgbToHsl(r: number, g: number, b: number): number[]; declare const DtMath: { getDistance: (p1: Point, p2: Point) => number; rotatePoint: (point: Point, rad: number) => Point; segmentsIntr: typeof segmentsIntr; lineIncludedAngle: (x1: number, y1: number, x2: number, y2: number, baseDeg: number) => number | void; hslToRgb: typeof hslToRgb; rgbToHsl: typeof rgbToHsl; }; declare const DtTools: { isDev: () => boolean; isBeta: () => boolean; isProd: () => boolean; isTest: () => boolean; transformUrlToCurrentEnv: (url: string, env?: string) => string; webviewConsole: (msg: string) => void; createUrlWithQuery: (url: string, data: any) => string; getParams: (url?: string | undefined) => Record; addParam: (url: string, param: string, value: string) => string; removeParam: (url: string, pnm: string) => string; getCookie: (cName: string) => string; digy: (topkey: string, subkey: string, value: string) => void; digyAndHm: (category: string, action: string, optLabel: string, optValue: string) => void; useDevTool: (extraDevHostsReg?: RegExp[] | undefined) => boolean; }; /** * @description 判断是否是本地开发环境 * @returns boolean */ declare const isDev: () => boolean; /** * @description 判断是否是预发环境 * @returns boolean */ declare const isBeta: () => boolean; /** * @description 判断是否是线上环境 * @returns boolean */ declare const isProd: () => boolean; /** * @description 判断是否是测试环境 * @returns boolean */ declare const isTest: () => boolean; /** * @description 改变url环境,如传入"www.duitang.com" ,当前环境在t000,则输出"www-t000.duitang.net" * @param {string} url 地址 * @param {string} env 可选:在本地开发环境下,希望请求被改写到其他环境,环境需要手动指定,默认"-t000" * @returns currentEnvUrl */ declare const transformUrlToCurrentEnv: (url: string, env?: string) => string; /** * @description 在webview中打印信息 * @param msg 打印的信息 */ declare const webviewConsole: (msg: string) => void; /** * @description 将query参数对象解析到url的?参数中并返回 * @param {[string]} url [不带参数的url] * @param {[string]} data [query参数对象] * @return {[string]} [带参数的url] */ declare const createUrlWithQuery: (url: string, data: any) => string; /** * @description 将url的query参数解析成对象 * @param {[string]} url [不传则取当前页面url] * @return {[object]} [参数对象] */ declare const getParams: (url?: string | undefined) => Record; /** * @description 向url query中增加单个key=value * @param url url不传则取当前页面url * @param param 单个query的key * @param value 单个query的value * @returns 拼接后的url */ declare const addParam: (url: string, param: string, value: string) => string; /** * @description 将url query中的某个key=value删除 * @param url url不传则取当前页面url * @param pnm 要删除的key=value中的key * @returns 删除后的url */ declare const removeParam: (url: string, pnm: string) => string; /** * @description 根据cookie的名称,获取cookie的值 * @param {[type]} c_name [cookie的名称] * @return {[type]} [description] */ declare const getCookie: (cName: string) => string; /** 描述:打点通用方法 参数: * @param topkey - (Str) 三段式打点,topkey * @param subkey - (Str) 三段式打点,subkey * @param value - (Str) 三段式打点,value */ declare const digy: (topkey: string, subkey: string, value: string) => void; /** 描述:包含百度打点的打点通用方法 参数: * @param topkey - (Str) 三段式打点,topkey * @param subkey - (Str) 三段式打点,subkey * @param value - (Str) 三段式打点,value */ declare const digyAndHm: (category: string, action: string, optLabel: string, optValue: string) => void; /** * @description 如果是开发或测试环境,则加上devtool工具(eruda),帮助手机调试 * @param {RegExp[]} extraDevHostsReg 额外自定义的开发环境host地址,类型为正则数组,如:[ /^[a-z]+-beta\d\.duitang\.com/ ] * @return {boolean} true表示符合devtool添加条件,false表示不符合 */ declare const useDevTool: (extraDevHostsReg?: RegExp[] | undefined) => boolean; /** * @description 判断值是否存在,undefined、null、NaN为不存在 * @param value * @returns */ declare const isExist: (value: any) => boolean; declare const isObject: (item: any) => boolean; /** * @description 数据类型枚举 */ declare enum Types { Object = "object", Array = "array", String = "string", Number = "number", Function = "function", Undefined = "undefined", Null = "null", Symbol = "symbol", BigInt = "bigInt", Map = "map", Set = "set", ReadableStream = "readableStream", FileReader = "fileReader", Blob = "blob", HTMLDocument = "HTMLDocument", Window = "window", Request = "request", Response = "response", Unknown = "unknown" } interface NumberAndUnitType { number: number; unit: string; } /** * @description 判断值的类型,建议用输出值和数据类型枚举Types比较 * @param any * @returns 类型名称 Types as string */ declare const getType: (any: any) => Types; declare const isEmpty: (value: any) => boolean; /** * @description 计算一段时间的毫秒数,如:一天1day = getTimeWithMillisecond(1, 'day'); 2小时2hour = getTimeWithMillisecond(2, 'hour'); * @param n 数量 * @param unit 时间单位,second-秒、minute-分钟,hour-小时、day-天、month-月、year-年 * @returns millisecond 毫秒数 */ declare const getTimeWithMillisecond: (n: number | undefined, unit: string) => number; /** * @description 保留小数,如:keepDecimals(3.14159, 2) === 3.14 * @param number 输入数字 * @param decimal 需要保留的小数位数 * @returns 输出四舍五入的有效数字 */ declare const keepDecimal: (number: number, decimal?: number) => number; /** * 将 px 单位转成类似 vw 的自适应数值 * @param {string | number} str 可传字符串或数字,如果是数字,则会根据设计稿宽度计算出当前视口相同比例的px值。其他情况则不会改变,如"1rem"、"20px"等 * @param {number} viewportWidth 设计稿宽度,默认750px * @param {boolean} hasUnit 返回值是否需要有"px"单位,默认true * @return {string | number} ...px */ declare const px2vw: (str: string | number, viewportWidth?: number, hasUnit?: boolean) => string | number; declare type ImageInstance = { image: HTMLImageElement; aspectRatio: number; }; /** * @description 创建图片并返回Promise * @param {string} src 图片地址 * @param {object} opt merge进image实例属性,如{crossOrigin: ""},将image的crossOrigin设置为"" * @returns */ declare const createImage: (src: string, opt?: any) => Promise; /** * @description 给某个函数扩展节流功能 * @param action 需要节流的函数 * @param time number,节流阈值,单位毫秒,默认20ms * @param options {loosely: boolean} loosely-false: 如果某次调用被节流挡住了,等节流时间结束会自动再次调用; loosely-true(默认): 如果某次调用被节流挡住了,等节流时间结束也不会再次调用 * @returns 被包装了节流的函数 */ declare const throttling: (action: T, time?: number | undefined, options?: { loosely?: boolean | undefined; } | undefined) => any; declare type Callback = (...params: any[]) => any; interface Config { allowInitial?: boolean; } /** * 防抖工厂函数 * @param callback 想要获得防抖功能的函数 * @param timeout 防抖延时 默认500ms * @param config * ``` * { * allowInitial?: boolean; 允许首次点击 和 触发setTimeout后的首次点击 * } * ``` * @returns */ declare const debounce: (callback: T, timeout?: number, config?: Config) => T; /** * @description 将函数包装成要求浏览器在下次重绘之前调用该回调函数 * @param action * @returns */ declare const animationFrame: (action: T) => any; /** * @description 将数字与单位分离,如"12px" 返回 { number: 12, unit: 'px' }、"1.5rem"返回 { number: 1.5, unit: 'rem' }、如果是数字则返回 { number: ${param}, unit: '' } * @param {string} s 需要分离的字符串 * @returns {NumberAndUnitType} */ declare const separateNumberAndUnit: (s: string | number) => NumberAndUnitType; /** * @description 获取设备像素比 https://developer.mozilla.org/zh-CN/docs/Web/API/Window/devicePixelRatio * @returns {number} 设备像素比 */ declare const getDevicePixelRatio: () => number; interface ValidateResult { result: boolean; message?: string; } /** * @description 通过自定义的校验规则,校验对象属性是否合法 * * @param {object} validateMap 校验规则对象,key-被校验的属性,value-校验规则(数组或函数),规则举例: * @one 规则是数组: * @rule [ String, true ] - 必须是字符串类型、必须有值; * @rule [ String ] - 是字符串类型即可; * @rule [ Array, true ]-必须是数组、数组必须有长度; * @rule [ String, '值必须是字符串', true, '值不能为空' ] - 若出错的校验项的下一个是字符串,则它可以作为返回的错误详情message; * @rule [ String, true, '值必须是非空字符串' ] - 若出错的校验项后面没有错误详情,则会用最后一个; * @rule 如果最后没有错误详情,会用默认错误提示:`prop '${首个错误属性}' is invalid`。 * * @two 规则是函数: * @rule (value: 被校验属性的值, context: 被校验的整个对象) => true-校验通过、false-校验失败、throw new Error('')-校验失败,错误message是throw Error的值 * * @param {any} validateValue 被校验的对象 * * @returns {ValidateResult} 返回值是一个对象,result: true通过、false失败,message: 具体失败信息 */ declare const validate: (validateMap: Record, validateValue: Record) => ValidateResult; /** * @description 移动端自动消失的提示框 * @param {string} msg 提示文案 * @param {number} duration 可选,显示时间: ms,默认1500ms */ declare const popMsg: (msg: string, duration?: number | undefined) => void; /** * @description 复制文字到粘贴板 * @param {string} text 复制的文字 */ declare const copy: (text: string) => boolean; /** * @description 在前端环境下,选取本地图片 * @param {number} min 最少图片张数,默认0 * @param {number} max 最多图片张数,默认1 * @returns {Promise<{files: File[], urls: string[]} | false>} resolve值为对象,或reject false */ declare const selectPictureInFrontend: (_min?: number, _max?: number) => Promise<{ files: File[]; urls: string[]; } | false>; /** * @description 请求资源的blob类型,然后转成base64 data url 返回 * @param {string} url 请求的url * @param {RequestInit | undefined} config fetch的第二个参数 * @returns {Promise} base64的data url */ declare const fetchBlobConvertToBase64: (url: RequestInfo, config?: RequestInit | undefined) => Promise; /** * @description 将base64 data url资源转成 blob 类型 * @param {string} dataURI base64 data url * @returns {Blob} blob实例 */ declare const base64ToBlob: (dataURI: string) => Blob; /** * * @param {string} versionA 第一个版本号 * @param {string} versionB 第二个版本号 * @returns {number} 1: 版本A大于版本B; -1: 版本A小于版本B; 0: 版本号AB相等 */ declare const compareVersion: (versionA: string, versionB: string) => number; export { DtImageTools, DtMath, DtPlatform, DtSdk, DtTools, addParam, animationFrame, appVersionCompare, base64ToBlob, compareVersion, copy, createImage, createUrlWithQuery, debounce, digy, digyAndHm, dtImageNoWebp, dtImageOrigin, dtImageSquare, dtImageSquareNoWebp, dtImageSquareOnlyNoWebpForGif, dtImageThumb, dtImageThumbNoWebp, dtImageThumbOnlyNoWebpForGif, dtSquare, dtThumb, fetchBlobConvertToBase64, getAppVersion, getCookie, getDevicePixelRatio, getDistance, getParams, getPhoneType, getPrivateUrlOfImages, getTimeWithMillisecond, getType, hslToRgb, isAndroid, isBeta, isChrome, isDev, isDuiTang, isDuitangImage, isEmpty, isExist, isFireFox, isInApp, isIos, isMEIZU, isNaiYou, isObject, isPc, isPhone, isProd, isQQ, isSupportFull, isSymbian, isTablet, isTest, isWeiBo, isWeiXin, isWindowsPhone, keepDecimal, lineIncludedAngle, popMsg, px2vw, removeParam, rgbToHsl, rotatePoint, sdkVersion, segmentsIntr, selectPictureInFrontend, separateNumberAndUnit, testUa, throttling, transformUrlToCurrentEnv, uploadImage, useDevTool, validate, verifyImageAccessibility, webviewConsole };