@likg/js-bridge
Version:
149 lines (148 loc) • 5.68 kB
TypeScript
declare global {
interface Window {
webkit: any;
js_android: any;
}
}
declare class JSBridge {
/**
* 获取当前环境
* @returns
*/
private static getEnv;
static jsTest(options: any): void;
/**
* 调用原生方法通信
* @param options
* options.fn 原生方法名
* options.data H5传递给原生的参数,默认值为null
* options.iOSPrompt 处理iOS同步返回
*/
private static call;
/************************************************
****** APIs
************************************************/
/**
* 跳转微信小程序
* @param {Object} options
* @param {String} options.userName 小程序原始id
* @param {String} [options.path] 拉起小程序页面的可带参路径,不填默认拉起小程序首页
* @param {Number} [options.miniprogramType=0] 打开类型;0:正式版,1:开发版,2:体验版
*/
static launchMiniProgram(options: {
userName: string;
path?: string;
miniprogramType?: 0 | 1 | 2;
}): void;
/**
* H5调用原生支付
* @param {Object} params
* @param {String} params.callback 支付回调H5函数名
* @param {String} params.payType 支付类型(这里需要和原生约定类型,如:微信支付 - WX_PAY,支付宝支付 - ALI_PAY,苹果支付 - APPLE_PAY)
* @param {String} params.payStr 支付参数(这里需要和后台沟通,将原生拉起支付的参数以JSON字符串形式返回,到时直接传递给原生并由原生解析即可)
* @param {String} [params.orderNo] 订单号(有时原生调用支付回调函数之后,H5这边需要通过订单号查询支付状态,所以这里将订单号传给原生,原生在回调时作为参数回传给H5使用)
*/
static payment(params: {
callback: string;
payType: string;
payStr: string;
orderNo?: string;
}): void;
/**
* H5调用原生分享
* @param {Object} options
* @param {Number} options.type 分享类型: 0 文字,1 图片,2 网页链接,3 视频连接,4 小程序
* @param {String} [options.title] 标题(可选)
* @param {String} [options.link] 网页链接(可选)
* @param {String} [options.text] 文字内容/网页链接描述(可选)
* @param {String} [options.videoUrl] 视频连接地址(可选)
* @param {String} [options.imageUrl] 图片链接地址/网页链接缩略图(可选)
* @param {String} [options.imageBase64] 图片base64(可选)
*/
static shareWith(options: {
type: number;
title?: string;
link?: string;
text?: string;
videoUrl?: string;
imageUrl?: string;
imageBase64?: string;
}): void;
/**
* 4. 保存图片至手机相册
* @param images 图片集合/这里将图片的在线链接放入集合传递给原生进行保存
*/
static saveImages(images: string[]): void;
/**
* 保存视频至手机相册
* @param {string[]} videoUrls 视频地址集合/这里将视频的在线链接放入集合传递给原生进行保存
* @description 保存视频的在线链接到手机相册,以便用户可以在相册中查看和分享
*/
static saveVideos(videoUrls: string[]): void;
/**
* 通知原生返回上一页(原生pop控制器)
* @description 该方法可以使原生pop控制器返回上一页
*/
static nativeBack(): void;
/**
* 通知原生绑定平台
* @description 该方法通知原生绑定平台,需要H5传递平台和回调函数给原生
* @param {Object} options
* @param {String} options.platform 平台:WX/ALIPAY
* @param {String} options.callback 微信绑定之后的回调函数
*/
static bindPlatform(options: {
platform: 'WX' | 'ALIPAY';
callback: string;
}): void;
/**
* 通知原生打开APP
* @param appTag APP标识
* @description 该方法可以让原生打开对应的APP,例如微信/QQ
* @example
* JSBridge.openApp('WX'); // 打开微信
*/
static openApp(appTag: 'WX' | 'QQ'): void;
/**
* 9. 通知原生定位
* @param callback 原生定位成功以后调用H5回调函数,并将定位信息作为回调函数参数传递。
*/
static getLocation(callback: string): void;
/**
* 10. 从原生获取token。
*
* iOS开发者注意:----- 此方法通过prompt触发,type类型为:GET_TOKEN
*/
static getToken(): string;
/**
* 11. 分享(邀请)海报 --- 裂变
* @param options
* @param options.type -- 分享(邀请)标识符,H5和原生根据具体使用场景自行约定一个字符串常量标识;
* @param options.callback -- H5回调函数名,原生在成功触发邀请之后调用该js函数,用于通知H5做后续处理;
*/
static sharePoster(options: {
type: string;
callback: string;
}): void;
/**
* 12. 设置剪切板
* @param value 复制内容
*/
static setClipboard(value: string): void;
/**
* 13. 获取剪切板内容
* @returns value
*/
static getClipboard(): string;
/**
* 14. 百度统计
* @param eventId 事件ID
*/
static baiduStatistics(eventId: string): void;
/**
* 15. 通知原生刷新页面
* @param k 通知标识,可以理解为事件名称,需原生和H5协商
*/
static nativeRefresh(k: string): void;
}
export default JSBridge;