UNPKG

fastchar-appjs

Version:

快速搭建VUE项目工具类的基本库,主要用于每个功能页面独立生成html,不使用vue单页面功能。

745 lines (744 loc) 27.1 kB
/** * FastNative 调用Android或IOS原生方法工具 * @author Janesen */ export declare namespace FastNative { /** * 执行本地方法核心类 */ class Core { private static methodInfos; private static getKey; private static showError; /** * 是否是安卓客户端 */ static isAndroid(): boolean; /** * 是否是ios客户端 */ static isIOS(): boolean; /** * 执行手机客户端原生方法 * @param methodName 方法名称 * @param methodParams 方法参数,Array格式,按照原生方法的参数顺序设置 * @param callBack 回调函数 */ static execute(methodName: string, methodParams: any, callBack?: (result: { success: boolean; message: string; data: any; }) => void): void; /** * 手机原生方法回执时调用 * @param key 回调函数的唯一标识 * @param result 回调结果 */ static appCallBack(key: string, result: string): void; /** * 递归执行回调,针对同一个浏览器下嵌入iframe问题 * @param targetWindow 目标window * @param key * @param result * @private */ private static doAppCallBack; /** * 手机原生方法回执时调用 * @param key 回调函数的唯一标识 * @param result 回调结果 */ static executeAppCallBack(key: string, result: string): void; /** * 手机原生方法执行错误时调用 * @param message 错误信息 */ static error(message: string): void; /** * 可同步或异步执行手机客户端原生方法 * @param methodName 方法名称 * @param methodParams 方法参数,Array格式,按照原生方法的参数顺序设置 * @param callBack 回调函数 */ static executeByPromise(methodName: string, methodParams: any, callBack?: (result: { success: boolean; message: string; data?: any; }) => void): Promise<{ success: boolean; message: string; data: any; }>; } /** * BaseApp 创息公司封装的常用本地原生APP功能 */ class BaseApp extends Core { /** * 打开指定包名的APP * @param packageName APP的包名 * @param callBack 调用成功后的回调函数 */ static openApp(packageName: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; }>; /** * 打开系统浏览器 * @param url 地址 * @param callBack 调用成功后的回调函数 */ static openSysBrowser(url: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; }>; /** * 关闭手机输入键盘 * @param callBack 调用成功后的回调函数 */ static closeKeyboard(callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 关闭浏览器窗口 * @param callBack 调用成功后的回调函数 */ static closeWindow(callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 复制内容到剪贴板中 * @param content 复制的内容 * @param callBack 调用成功后的回调函数 */ static copy(content: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 下载文件,会弹出下载对话框并显示下载进度 * @param url 文件的网络地址 * @param fileName 文件名,主要用于区别文件的类型,所以建议传参 * @param doneAction 文件下载成功后,操作文件的方式,可选值:share(分享文件)、open(打开文件) * @param callBack 调用成功后的回调函数 */ static downloadFile(url: string, fileName: string, doneAction?: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 获取APP的版本描述 * @param callBack 获取成功后的回调函数 */ static getAppLevel(callBack?: (success: boolean, message: string, data: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 获取APP的安卓SDK版本号 * @param callBack 获取成功后的回调函数 */ static getAndroidLevel(callBack?: (success: boolean, message: string, data: number) => void): Promise<{ success: boolean; message: string; data: number; }>; /** * 获取缓存在手机APP中的数据【async】 * @param cacheKey 缓存的Key * @param callBack 获取成功后的回调函数,函数结构:function(success:boolean,message:string,data:string){} */ static getCache(cacheKey: string, callBack?: (success: boolean, message: string, data: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 获取手机APP状态栏的高度 * @param callBack 获取成功后的回调函数,函数结构:function(success:boolean,message:string,data:int){} */ static getStatusHeight(callBack?: (success: boolean, message: string, data: number) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 弹出全局等待框 * @param message 等待的消息 * @param callBack 调用成功后的回调函数 */ static showLoadingDialog(message: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 关闭全局等待框 * @param callBack 调用成功后的回调函数 */ static hideLoadingDialog(callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 打开系统忽略APP电源设置 * @param callBack 调用成功后的回调函数 */ static ignoredPower(callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 打开APP的系统通知设置 * @param callBack 调用成功后的回调函数 */ static notifySet(callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 在新的窗口浏览器中打开链接地址 * @param url 链接地址 * @param closeSelf 打开新的窗口后是否关闭当前窗口 * @param callBack 调用成功后的回调函数 */ static openBrowser(url: string, closeSelf: boolean, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 打开一个文件,如果是图片类型则调用图片浏览器打开,如果是mp4类型 则打开视频播放器,否则下载成功后打开文件 * @param url 文件地址 * @param fileName 文件名,主要用于区别文件的类型,所以建议传参 * @param callBack 调用成功后的回调函数 */ static openFile(url: string, fileName: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 打开输入键盘 * @param callBack 调用成功后的回调函数 */ static openKeyboard(callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 打开淘宝的商品链接 * @param url 商品链接 * @param callBack 调用成功后的回调函数 */ static openTaobaoA(url: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 打开淘宝的商家详情页链接 * @param sellerId 商家门店的ID * @param callBack 调用成功后的回调函数 */ static openTaobaoB(sellerId: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 打开淘宝的商品详情页面 * @param numIid 商品ID * @param callBack 调用成功后的回调函数 */ static openTaobaoC(numIid: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 打开一个地址,如果地址是http开头则调用浏览器打开,否则调用第三方APP打开,例如:wx:// * @param url 地址 * @param callBack 调用成功后的回调函数 */ static openUrl(url: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 发送全局事件通知到APP原生代码中 * @param notifyName 事件名称 * @param callBack 调用成功后的回调函数 */ static postNotify(notifyName: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 发送网页页面事件,此将会触发页面 {@link FastNative.CrosheInject.onEvent} 函数 * @param eventName 事件名称 * @param callBack 调用成功后的回调函数 */ static postEvent(eventName: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 删除缓存在APP中的数据 * @param key 缓存的标识 * @param callBack 调用成功后的回调函数 */ static removeCache(key: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 上报异常信息 * @param error 异常信息 * @param callBack 调用成功后的回调函数 */ static reportBug(error: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 保存图片到手机相册中 * @param url 图片地址 * @param callBack 调用成功后的回调函数 */ static saveImage(url: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 缓存数据到APP中 * @param key 缓存的key * @param data 缓存的数据 * @param callBack 调用成功后的回调函数 */ static setCache(key: string, data: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 设置图片为剪切状态,一般在选择图片前调用 * @param crop 是否进行图片剪切 * @param callBack 调用成功后的回调函数 */ static setCrop(crop: boolean, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 设置当前浏览器的图片集, * @param images 图片集,多个图片以 英文逗号(,)隔开,例如:http://12123/12.png,http://12123/124.png * @param callBack 调用成功后的回调函数 */ static setImages(images: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 预设浏览器的标题 * @param title 标题 * @param callBack 调用成功后的回调函数 */ static setWebTitle(title: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 弹出提示消息 * @param message 消息内容 * @param callBack 调用成功后的回调函数 */ static toast(message: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 发起APP支付,命名使用中文规范,为了ios上架 * @param payType 支付类型 1 支付宝支付,2 微信支付 * @param orderPrefix 订单前缀,例如:PY * @param orderTitle 订单标题 * @param orderMoney 订单金额 * @param orderData 订单携带的额外数据 * @param callBack 支付完成回调, */ static appZF(payType: number, orderPrefix: string, orderTitle: string, orderMoney: number, orderData: string, callBack?: (success: boolean, message: string, data: any) => void): Promise<{ success: boolean; message: string; data: any; }>; /** * 发起APP登录授权 * @param authorType 授权类型 1 只获取授权码 2 获取授权后的用户信息 * @param appType APP类型 1 支付宝授权,2 微信授权 * @param callBack 授权完成回调 * <br/> * 当授权类型为1时:回调授权码字符串 * <br/> * 当授权类型为2时:微信回调的JSON实体:{@link WXUserInfo},支付宝回调的JSON实体:{@link APUserInfo} */ static appAuthor(authorType: number, appType: number, callBack?: (success: boolean, message: string, data: WXUserInfo | APUserInfo | String | undefined) => void): Promise<{ success: boolean; message: string; data: WXUserInfo | APUserInfo | String | undefined; }>; /** * 发起苹果支付 * @param productId 产品ID * @param orderPrefix 订单前缀,例如:PY * @param orderTitle 订单标题 * @param orderMoney 订单金额 * @param orderData 订单携带的额外数据 * @param callBack 支付完成回调, */ static applePay(productId: string, orderPrefix: string, orderTitle: string, orderMoney: number, orderData: string, callBack?: (success: boolean, message: string, data: any) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 发起分享 * @param url 分享网页地址 * @param title 分享标题 * @param content 分享的内容 * @param imgUrl 网页的缩率图地址 * @param type 分享类型,可选值有:1(微信朋友圈)、2(微信好友)、3(QQ好友)、4(QQ空间) * @param callBack 调用成功后的回调函数 */ static shareUrl(url: string, title: string, content: string, imgUrl: string, type: number, callBack?: (success: boolean, message: string, data: any) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 获取当前手机定位 * @param callBack 调用成功后的回调函数 */ static getLocation(callBack?: (success: boolean, message: string, data: LocationInfo) => void): Promise<{ success: boolean; message: string; data: LocationInfo; }>; /** * 打开地图选择位置 * @param callBack 调用成功后的回调函数 */ static selectMap(callBack?: (success: boolean, message: string, data: LocationInfo) => void): Promise<{ success: boolean; message: string; data: LocationInfo; }>; /** * 在地图上查看位置 * @param lng 经度 * @param lat 纬度 * @param address 详细位置 * @param callBack 调用成功后的回调函数 */ static showMap(lng: string, lat: string, address: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 开启地图导航 * @param lng 经度 * @param lat 纬度 * @param callBack 调用成功后的回调函数 */ static startNav(lng: string, lat: string, callBack?: (success: boolean, message: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 获取APP配置的全局参数 * @param callBack 获取成功后的回调函数,函数结构:function(success:boolean,message:string,data:string){} */ static getFinalParams(callBack?: (success: boolean, message: string, data: any) => void): Promise<{ success: boolean; message: string; data: any; }>; /** * 发起会话聊天 * @param code 会话编号 * @param type 聊天类型 0 单聊 1 群聊 * @param callBack 获取成功后的回调函数,函数结构:function(success:boolean,message:string,data:string){} */ static chat(code: string, type: number, callBack?: (success: boolean, message: string, data: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 获取聊天配置 * @param code 会话编号 * @param type 枚举值:top 是否置顶 mute 是否静音 * @param callBack */ static getChatConfig(code: string, type: string, callBack?: (success: boolean, message: string, data: any) => void): Promise<{ success: boolean; message: string; data: any; }>; /** * 设置聊天配置 * @param code 会话编号 * @param type 枚举值:top 是否置顶 mute 是否静音 clear 清除聊天记录 * @param value 配置的值,top和mute配置boolean值 * @param callBack */ static chatConfig(code: string, type: string, value: any, callBack?: (success: boolean, message: string, data: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 发起扫描二维码 * @param callBack 调用成功后的回调函数 */ static startScanner(callBack?: (success: boolean, message: string, data: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 进入发送短信界面 * @param phone 手机号码,多个使用分号(;)分割 * @param content 短信内容 * @param callBack 调用成功后的回调函数 */ static sendSMS(phone: string, content: string, callBack?: (success: boolean, message: string, data: string) => void): Promise<{ success: boolean; message: string; data: string; }>; /** * 获取本地通讯录数据 * @param callBack 调用成功后的回调函数 */ static getLocalContact(callBack?: (success: boolean, message: string, data: ContactInfo[]) => void): Promise<{ success: boolean; message: string; data: ContactInfo[]; }>; } /** * CrosheApp 创息公司APP常用的功能JS调用 */ class CrosheApp extends BaseApp { /** * 判断是否在创息内置安卓浏览器,注意此方法必须在页面加载完毕后判断更准确 */ static isCrosheAndroid(): boolean; /** * 判断是否在创息内置的ios浏览器,注意此方法必须在页面加载完毕后判断更准确 */ static isCrosheIOS(): boolean; /** * 查看图片 * @param url 图片地址 * @param imageList 图片所在的集合 */ static showImages(url: string, imageList?: string[]): Promise<void>; /** * 选择图片 * @param crop 是否进行剪裁 * @param multi 是否批量选择图片 * @param callBack 回调函数 */ static selectImage(crop: boolean, multi: boolean, callBack: (base64File: string) => void): Promise<void>; /** * 弹出评论框 * @param hint 提示语 * @param callBack 回调函数 */ static showComment(hint: string, callBack: (content: string) => void): void; /** * 检查APP版本更新 */ static checkLevel(): void; /** * 退出APP登录 */ static logout(): void; /** * 清除APP文件缓存 */ static clearCache(): void; } /** * CrosheInject 由原生调用本地JS页面的方法,【重要:方法的作用域必须是window ,否则无法APP原生代码无法调用】 */ abstract class CrosheInject { /** * 当APP向浏览器页面发送事件或者网页自身调用 {@link FastNative.BaseApp.postEvent} 时,会触发未关闭的网页页面里的此函数, * @param eventName 事件名 */ abstract onEvent(eventName: string): void; /** * 当前APP触发字母索引时调用网页自身调用 {@link FastNative.BaseApp.postEvent} 时,会触发未关闭的网页页面里的此函数, * @param letter */ abstract onLetter(letter: string): void; } /** * LocationInfo 获取定位返回的实体信息 */ class LocationInfo { /** * 纬度 */ latitude: number; /** * 经度 */ longitude: number; /** * 详情位置 */ address: string; /** * 省份 */ province: string; /** * 城市 */ city: string; /** * 区 */ area: string; } /** * AnyInfo 不可预测的实体信息,请根据实际返回数据为准 */ class AnyInfo { } /** * ContactInfo 通讯录实体信息 */ class ContactInfo { /** * 通讯录唯一标识ID */ contactId: string | undefined; /** * 姓名 */ contactName: string | undefined; /** * 手机号码 */ contactPhone: string | undefined; /** * 姓名的拼音字母 */ allLetter: string | undefined; /** * 通讯录排序的首字母 */ sortKey: string | undefined; } /** * 微信授权返回的实体信息 */ class WXUserInfo { /** * 普通用户的标识,对当前开发者帐号唯一 */ openid: string | undefined; /** * 普通用户昵称 */ nickname: string | undefined; /** * 普通用户性别,1为男性,2为女性 */ sex: number | undefined; /** * 使用语言 */ language: string | undefined; /** * 所在城市 */ city: string | undefined; /** * 所在省份 */ province: string | undefined; /** * 所在国家 */ country: string | undefined; /** * 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空 */ headimgurl: string | undefined; /** * 用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。 */ unionid: string | undefined; /** * 用户特权信息,json数组,如微信沃卡用户为(chinaunicom) */ privilege: Array<string> | undefined; } /** * 支付宝用户实体信息 */ class APUserInfo { /** * 用户头像地址 */ avatar: string | undefined; /** * 所在城市 */ city: string | undefined; /** * 性别。枚举值如下:F:女性;M:男性。 */ gender: string | undefined; /** * 用户昵称 */ nick_name: string | undefined; /** * 所在省份 */ province: string | undefined; /** * 支付宝用户的userId */ user_id: string | undefined; } }