API 分类如下:

Base (基础) Device (设备) WebView (浏览器) WebView Event (浏览器事件)
Navigation (导航) Navigation Event (导航事件) Window (窗口) Image (图片)
Schema Share (分享) Scan (扫描) Log (日志)
common Config

说明: 对 ctrip API 支持情况如下文档所示,具体使用请参考 插件Fusion 和 携程 Hybrid 桥文档

重要更新: Hysdk:1.3.45, 安卓:60001558, iOS:80011306 版本开始, 部分接口将支持同步调用. 传入参数USE_SYNCtrue时, 将会同步返回结果.(注: 同步调用会阻塞 JS 线程, 请谨慎使用)

  • 当前支持同步调用的接口: getDeviceInfo,app.getAppInfo,getLocation,getNetworkType, app.getNetworkType,getRiskControlInfo,requestCacheLocation,signature

描述: 判断当前环境是否支持指定JS接口
使用场景:在不确定当前客户端对API支持情况下检测
HY不支持的验证方法:config、ready、register、onShow、onHide、onReceiveData、onCloseWebView、onLoadingClose、onNavClick、openCashier、login、checkLogin、logout、getCaptchaUrl、getUserInfo
对应native接口:checkJsApi

示例
hysdk.checkJsApi({
    jsApiList: ['chooseImage'], // 需要检测的JS接口列表
    success: function(res) {
        // 以键值对的形式返回,可用的api值true,不可用为false
        // res: {"chooseImage": true}
    },
    fail: function() {}
});

额外说明:

参数 类型 描述 必选 注明
jsApiList Array 待检测的 api 常用参数
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch
wechat
ctrip

描述: 配置 HySDK
hysdk 最重要的两个方法之一
对hysdk进行配置,包括是否开启调试,是否支持微信端和微信公众号的签名服务等
使用场景:在调用hysdk的一切接口前都要先调用一次config方法进行配置、初始化。

示例
// 常用
hysdk.config({
    debug: true,
    wechatSupport: true
});

// 所有配置项
hysdk.config({
    "debug": false, /* 调试开关 */
    "bridgeReadyEvent": "WebViewJavascriptBridgeReady", /* Hytive 桥 Ready 事件 */
    "bridgeReadyTimeout": 600, /* 桥 Ready 最大延迟 */
    "apiTimeout": 1000, /* API 超时时间 */
    "hytiveReg": "(^|\\s)(qunar[^\\/]+)\\/([\\d\\.]+)", /* Hytive UA 判断正则 */
    "wechatSupport": false, /* 是否支持微信 */ /* qunar/fusion 版本默认为 true,使用去哪儿网公共号 */
    "wechatScriptUrl": "//res.wx.qq.com/open/js/jweixin-1.0.0.js", /* 微信 JSSDK 地址 */
    "wechatSignatureUrl": "//ccweixin.qunar.com/chat/getJsConfig.do", /* 微信签名服务地址 */ /* qunar/fusion 版本默认配置 */
    "ucAPIScriptUrl": "//common.qunarzz.com/buri/prd/scripts/api/api@e5cd651c72c25357f174a1d5b99614d0.js" /* ucAPI 脚本地址 */ /* qunar/fusion 版本默认配置 */
});

额外说明:

参数 类型 描述 必选 注明
debug Bool 是否支持调试模式 X 常用参数,默认false
bridgeReadyEvent String Hytive 桥 Ready 事件 X 不常用参数,默认 "WebViewJavascriptBridgeReady"
bridgeReadyTimeout Number 桥 Ready 最大延迟 X 不常用参数,默认 600
apiTimeout Number API 超时时间 X 不常用参数,默认 1000
hytiveReg String Hytive UA 判断正则 X 不常用参数,hysdk 默认 "",qunar/fusion 插件默认 "(^|\s)(qunar[^\/]+)\/([\d\.]+)"
wechatSupport Bool 是否支持微信 X 常用参数,hysdk 默认 false;qunar/fusion 插件默认为 true
wechatScriptUrl String 微信 JSSDK 地址 X 不常用参数,默认 "//res.wx.qq.com/open/js/jweixin-1.0.0.js"
wechatSignatureUrl String 微信签名服务地址 X 不常用参数,hysdk 默认空,qunar/fusion 插件默认 "//ccweixin.qunar.com/chat/getJsConfig.do"
ucAPIScriptUrl String ucAPI 脚本地址 X 不常用参数,hysdk 不支持,qunar/fusion 插件默认 "//common.qunarzz.com/ucapi/prd/scripts/1.0.3/api@d20c312aba29a7178996dd57abcca695.js"
openTagList Array 需要使用的开放标签列表,例如['wx-open-launch-app'] X 无默认
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch
wechat
ctrip

描述: HySDK 初始化完成回调
hysdk 最重要的两个方法之一
Hy或微信的桥注入之后的回调

示例
hysdk.ready(function (env) {
    // env: hysdk当前运行环境,h5,hy或wechat

    hysdk.checkJsApi({
        //
    });
    ...
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch
wechat
ctrip

描述: 通过register扩展接口
使用场景:业务线有新的非公共HY插件,方便根据自身业务需求,向HySDK已有的hy或其指定的命名空间下挂载Hy bridge
注意:注册事件时,需要传第四个参数 isEvent

示例
// 注册
// 当注册事件时,只需要注册一次XXX,将自动注册成onXXX,onceXXX,offXXX。例如:只需注册navClick一次,将自动转化成onNavClick, onceNavClick, offNavClick三个。
hysdk.register('getLocation', 'geolocation.getCurrentPosition', 'demo');

hysdk.register('navClick', 'navigation.click', 'demo', true);
hysdk.register('onNavClick', 'navigation.click', 'demo'); // 兼容类似 QunarAPI 的写法
hysdk.register('onceNavClick', 'navigation.click', 'demo'); // 兼容类似 QunarAPI 的写法

// 调用
hysdk.demo.getLocation({// 普通API
    success: function (data) {
        console.log(data);
    }
});

hysdk.demo.onNavClick({// on的方式,每次触发
    success: function (data) {
        console.log(data);
    }
});

hysdk.demo.onceNavClick({// once的方式,仅触发一次
    success: function (data) {
        console.log(data);
    }
});

hysdk.demo.offNavClick(); // off的方式, off掉on绑定的事件

额外说明:

参数 类型 描述 必选 注明
name String 接口名称 常用参数
key String 对应native接口 常用参数
namespace String 命名空间,业务方建议使用自己的命名空间 x 常用参数,默认 "hy"
isEvent Bool 拓展的接口是否是事件 x 常用参数,默认false

本接口不依赖hysdk.ready,一定记得先注册再使用,否则会报undefined。

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch X
wechat X
ctrip X

描述: 通过registerScheme扩展接口
使用场景:将客户端有相应的 scheme 封装成 JS API

示例
// 注册
hysdk.registerScheme('getInfo', 'scheme://xxx/xxx/xxx');
// 或者不带 scheme
hysdk.registerScheme('getInfo', '//xxx/xxx/xxx');

// 调用
hysdk.getInfo({
    key1: val1,
    key2: val2,
    success: function() {
        //
    },
    fail: function() {
        //
    }
});

// 调用 hysdk.getInfo() 相当于调用 hysdk.schemeForResult({ scheme: 'qunariphone://xxx/xxx/xxx' })
hysdk.schemeForResult({
    scheme: 'qunariphone://xxx/xxx/xxx?key1=val1&key2=val2',
    success: function() {
        //
    },
    fail: function() {
        //
    }
});

额外说明:

参数 类型 描述 必选 注明
name String 接口名称 常用参数
scheme String 对应Scheme接口 常用参数

本接口不依赖hysdk.ready,一定记得先注册再使用,否则会报undefined。

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 获取系统信息
同步获取系统信息 (1.3.6 以上版本提供)

类型:

额外说明:

数据内容 返回值类型 String

  • {
       notchInfo: {
           notch: true, // 是挖孔屏
           notchSize: {
               height: 20, // 挖孔屏高度
               width: 100 // 挖孔屏宽度
           }
       },
       immersiveInfo: {
           immersive: true, // 是否是沉浸式屏幕
           immersiveOffset: 20, // 沉浸式屏幕高度
           safeAreaBottomHeight: 34 // 底部安全区域高度(iOS vid: 80011295 开始支持)
       }
    }
    {
       notchInfo: {
           notch: false, // 不是挖孔屏
           notchSize: {
               height: 0,
               width: 0
           }
       },
       immersiveInfo: {
           immersive: false, // 是否是沉浸式屏幕
           immersiveOffset: 0, // 沉浸式屏幕高度
           safeAreaBottomHeight: 34 // 底部安全区域高度(iOS vid: 80011295 开始支持)
       }
    }
    

之后会拓展其他内容

支持版本:iOS 80011158,android hy 64 (2018年6月版)。对于不支持的版本,systemInfo 值为 null。

描述: 获取系统信息
同步获取系统信息 (逻辑同systemInfo,安卓环境下,返回数据由字符串转为json) (1.3.10 以上版本提供)

类型:

额外说明:

数据内容 返回值类型 Object

  • {
       notchInfo: {
           notch: true, // 是挖孔屏
           notchSize: {
               height: 20, // 挖孔屏高度
               width: 100 // 挖孔屏宽度
           }
       },
       immersiveInfo: {
           immersive: true, // 是否是沉浸式屏幕
           immersiveOffset: 20, // 沉浸式屏幕高度
           safeAreaBottomHeight: 34 // 底部安全区域高度(iOS vid: 80011295 开始支持)
       }
    }
    {
       notchInfo: {
           notch: false, // 不是挖孔屏
           notchSize: {
               height: 0,
               width: 0
           }
       },
       immersiveInfo: {
           immersive: false, // 是否是沉浸式屏幕
           immersiveOffset: 0, // 沉浸式屏幕高度
           safeAreaBottomHeight: 34 // 底部安全区域高度(iOS vid: 80011295 开始支持)
       }
    }
    

之后会拓展其他内容

支持版本:iOS 80011158,android hy 64 (2018年6月版)。对于不支持的版本,systemInfoObj 值为 null。

描述: sniff
使用场景:查看运行环境,设备,系统等信息

类型:

字段 类型 说明
android bool 是否是 android 系统
appVersion string / undefined vid
browsers alipay string / bool 是否是支付宝,为版本号或 false
opera string / bool 是否是 Opera 浏览器,为版本号或 false
qq string / bool 当是使用 qq,微信或 qq 浏览器打开时,为版本号,否则为 false
uc string / bool 是否是 UC 浏览器,为版本号或 false
wechat string / bool 是否是微信,为版本号或 false
weibo string / bool 是否是微博,为版本号或 false
ctripApp bool 是否是携程客户端
ctripUseBase64 bool 是否是使用 base64 编码的 携程客户端
hy bool / undefined 根据 UA 判断取得,1.x 版本不建议用该字段判断是否是 Hy 环境(iOS 只能判断在大客户端内,也可能是客户端内的普通 webview),目前可通过 hysdk.ready(function(env) {}) 中的 env 来做运行环境判断
imobile bool / undefined 是否是 iphone / ipod
info object useragent 详细信息
ios bool 是否是 iOS 系统
ipad bool 是否是 ipad
iphone bool 是否是 iphone
iphoneX bool 是否是 iphoneX
ipod bool 是否是 ipod
os string / undefined 设备系统,为 ios 或 android,pc 端为 undefined
osVersion string / undefined 系统详细版本号,pc 端为 undefined
osVersionN number / undefined 系统数字化,pc 端为 undefined
pc bool 是否是 pc 端
pixelRatio number 像素比
qunar (qunar插件支持该参数) bool 是否是 qunar 大客户端
retina bool 是否是 retina 屏
scheme string / undefined scheme 协议,'qunariphone','qunaraphone'...(需要引入 qunar 插件)
webApp bool 是否是 WebApp (在桌面上显示图标的 webapp)
winos bool 是否是 Windows Phone
youthCtripApp bool 是否是携程学生版客户端

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch
wechat
ctrip

描述: 获取地理位置接口
对应native接口:geolocation.getCurrentPosition

示例
hysdk.getCurrentPosition({
    type: 'wgs84', // type 参数仅 wechat 支持,hy未实现 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
    timeout: 5000, // 非必填。当定位时间超出此限制时,调用失败回调。单位:ms
    maximumAge: 3000, // 非必填。可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
    permissionCheckType: 0, // 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
    success: function(res) {
        // res 结构
        res = {
            type: 'baidu', // gps , baidu
            coords: {
                latitude: 1, // 纬度,浮点数,范围为90 ~ -90
                longitude: 1, // 经度,浮点数,范围为180 ~ -180。
                accuracy: 1, // 位置精度
                timestamp: '111111', // 格式不统一
                type: '', // GPS, baidu (未上线)
                coordinateType: "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
            },
        };
    },
    fail: function() {
        alert(JSON.stringify(arguments));
    },
});

额外说明:

参数 类型 描述 必选 注明
type String 坐标类型 X 非常用参数,仅微信支持,默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
permissionCheckType Number 权限申请方式 X 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
timeout Number 超时设置 X 非常用参数,当定位时间超出此限制时,调用失败回调。单位:ms
maximumAge Number 缓存定位结果时间 X 非常用参数,可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
showNoPermsTips boolean 是否弹出"请您开启定位权限 仅安卓且vid: 60001462 支持 X 用户拒绝后,是否弹出"请您开启定位权限,否则无法使用定位功能"Toast提醒, 默认是true
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch √ (https)
wechat
ctrip

描述: 获取地理位置接口
对应native接口:geolocation.newGetCurrentPosition

示例
hysdk.getLocationV2({
    forceLocation: true, // 是否允许强制定位
    timeout: 5000,  // 非必填。当定位时间超出此限制时,调用失败回调。单位:ms
    maximumAge: 3000, // 非必填。可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
    permissionCheckType: 0, // 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
    success: function(res){
        // res 结构
        res = {
            "type": "baidu", // gps , baidu
            "coords": {
                "latitude": 1,  // 纬度,浮点数,范围为90 ~ -90
                "longitude": 1, // 经度,浮点数,范围为180 ~ -180。
                "accuracy": 1, // 位置精度
                "timestamp": "111111", // 格式不统一
                "type": '', // GPS, baidu (未上线)
                "coordinateType": "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
            }
        }
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})

额外说明:

参数 类型 描述 必选 注明
permissionCheckType Number 权限申请方式 X 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
timeout Number 超时设置 X 非常用参数,当定位时间超出此限制时,调用失败回调。单位:ms
maximumAge Number 缓存定位结果时间 X 非常用参数,可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
showNoPermsTips boolean 是否弹出"请您开启定位权限 仅安卓且vid: 60001462 支持 X 用户拒绝后,是否弹出"请您开启定位权限,否则无法使用定位功能"Toast提醒, 默认是true
forceLocation boolean 是否允许强制定位
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) x
touch x
wechat x
ctrip x

描述: 通过缓存获取地理位置接口
对应native接口:geolocation.newGetCacheLocation

示例
hysdk.newRequestCacheLocation({
    success: function(res) {
        // res 结构
        res = {
            type: 'baidu', // gps , baidu
            coords: {
                latitude: 1, // 纬度,浮点数,范围为90 ~ -90
                longitude: 1, // 经度,浮点数,范围为180 ~ -180。
                accuracy: 1, // 位置精度
                timestamp: '111111', // 格式不统一
                type: '', // GPS, baidu (未上线)
                coordinateType: "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
            },
        };
    },
    fail: function() {
        alert(JSON.stringify(arguments));
    },
});

额外说明:

参数 类型 描述 必选 注明
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) x
touch x
wechat x
ctrip x

描述: 使用经纬度打开地图
对应native接口:openLocation

示例
hysdk.openLocation({
    // 微信特有属性
    name: 'ha', // 位置名
    address: 'hah', // 地址详情说明
    scale: 10, // 地图缩放级别,整形值,范围从1~28。默认为最大
    infoUrl: 'http://qunar.com', // 在查看位置界面底部显示的超链接,可点击跳转
    // 公用
    latitude: '39.983667', // 纬度,浮点数,范围为90 ~ -90
    longitude: '116.312638' // 经度,浮点数,范围为180 ~ -180。
})

额外说明:

参数 类型 描述 必选 注明
longitude String 经度 常用参数,范围为180 ~ -180
latitude String 纬度 常用参数,范围为90 ~ -90
name String 位置名 X 非常用参数,仅微信支持
address String 地址详情说明 X 非常用参数,仅微信支持
scale Number 地图缩放级别 X 范围从1~28。默认为最大,非常用参数,仅微信支持
infoUrl String 在查看位置界面底部显示的超链接,可点击跳转 X 非常用参数,仅微信支持
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat
ctrip

描述: 获取设备信息
对应native接口:native.getDeviceInfo

示例
hysdk.getDeviceInfo({
    hybridId: "flight_mall_service", //hybridId,大客户端不用,可不填
    success: function(res){
        // 返回的数据
        res = {
            // http://wiki.corp.qunar.com/confluence/pages/viewpage.action?pageId=43255987
            pid: "";  // pid是标识这个是哪个包,比如,iOS、android,ios pro(iOS暂不支持,后面会提供)
            uid: "";  // uid设备唯一号,如android为手机串号,iphone为mac地址 ,ios7以后为iid
            gid: "";  // gid 服务器为每个设备下发的唯一编号

            cid: "",
            mac: "", // 机器 MAC 地址,iOS7后值始终为 02:00:00:00:00:00
            sid: "",
            vid: "",
            uuid: "", // 用户 id,更多信息请看下方 “额外说明” 部分

            model: "", // model是苹果设备或苹果模拟器特有的字段,表示该设备或模拟器型号,如“iPhone9,1”、“iPad5,2”等

            versioninfo:"" ;// 组件版本信息,仅android大客户端browser vid: 26+ 支持!
        }
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})

额外说明:

参数 类型 描述 必选 注明
hybridId String hybridId X 大客户端不用,可不填
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

uuid:该字段 Android 一直支持通过该 API 获取,iOS 从 4.10.19(vid:80011143)版本开始支持,之前版本请参考 wiki自行兼容 苹果设备 model 映射关系请参考附录

描述: 获取网络状态
对应native接口:network.getType

示例
hysdk.getNetworkType({
    success: function(res){
        // 返回网络类型2G,3G,2G/3G,4G,wifi,unknown
        var networkType = res.networkType;
        alert('当前网络连接方式为:' + networkType)
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch X
wechat
ctrip

描述: 注册截屏监听,一定要配合 onReceiveScreenshot 一起使用
对应native接口:registerScreenshot

示例
hysdk.registerScreenshot({
    success: function() {
        hysdk.log('注册截屏成功');
    },
    fail: function() {
        hysdk.log('注册截屏失败');
    }
});

hysdk.onReceiveScreenshot({
    success: function() {
        hysdk.log('截屏成功');
    },
    fail: function() {
        hysdk.log('截屏失败');
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 当页面退出,或者不需要截屏监听的时候,就需要移除这个监听了。
对应native接口:unregisterScreenshot

示例
hysdk.unregisterScreenshot({
    success: function() {
        hysdk.log('解除注册截屏成功');
    },
    fail: function() {
        hysdk.log('解除注册截屏失败');
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 设置剪贴板内容
对应native接口:tool.setClipboard

示例
hysdk.setClipboard({
  content:'我是拷贝内容',
  success: function() {
    console.log('设置成功');
  },
  fail: function() {
    console.log('设置失败');
  }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 获取剪贴板内容
对应native接口:tool.getClipboard

示例
hysdk.getClipboard({
  success: function(res) {
    console.log(res.content);
  },
  fail: function(err) {
    console.log(err);
  }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: APP是否开启Push状态查询:查询push权限是否打开
对应native接口:tool.checkPermission

示例
hysdk.checkPermission({
    type: 'notification', // 必填参数,只支持‘notification’这个值,不传回调 errorCode:10004
    success: function(notification) {
        successLog(notification);   // notification:0未打开,1打开
    },
    fail: function(err) {
        errLog(err)
    }
});

额外说明:

参数 类型 描述 必选 注明
type String "notification" 只支持这个值 "notification",不传回调errorCode:10004
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: APP是否开启Push状态查询:跳转到push权限设置页
对应native接口:tool.openPrefs

示例
hysdk.openPrefs({
    // common
    type: 'notification' , // 必填参数,只支持‘notification’这个值
    isShowDialog: true, // 非必填参数,是否展示弹窗,默认弹窗;若不弹窗直接跳到系统设置页面
    title: '请求使用通知服务', // 非必填,弹窗title
    message: '关闭通知后,您将无法收到相关的通知。打开推送通知有助于我们为您更好的提供服务', // 非必填,弹窗内容
    // adr
    positive: '去设置', // 非必填,确认按钮文字
    negative: '取消',  // 非必填,取消按钮文字
    success: function(data) {
        successLog(data);
    },
    fail: function(err) {
        errLog(err)
    }
});

额外说明:

参数 类型 描述 必选 注明
type String "notification" 只支持这个值 "notification",不传回调errorCode:10004
isShowDialog Boolean 是否弹出dialog X 不写,默认弹窗;不弹窗直接跳到系统设置页面
title String dialog title X 默认值:请求使用通知服务
message String dialoge message X 默认值:关闭通知后,您将无法收到相关的通知。打开推送通知有助于我们为您更好的提供服务
positive String dialog positive button text X 仅针对安卓,默认值:去设置
negative String dialog negative X 仅针对安卓,默认值:取消
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: APP权限检查
对应native接口:checkPhonePermission

示例
hysdk.checkPhonePermission({
    permissions: [
        'photo', //读取相册权限
        'camera', //拍照摄像权限
        'microphone', //麦克风权限
        'location', //地理位置
        'push', //通知权限
        'contacts', //联系人权限
        'read_calender', //读取日历
        'write_calender', //写日历
        'read_external_storage', //读取外部存储
        'write_external_storage', //写入外部存储
        'read_phone_state', //读取手机状态信息
        'write_settings', //修改系统内容设置
        'system_alert_window', //悬浮窗权限
        'send_sms', //发短信权限
        'call_phone', //拨打电话权限
        'account_manager ' //账户权限
    ], // 必填参数,数组
    success: function (result) {
        // result 示例
        /**
         * {
                "read_calender":{
                    "state":false
                },
                "write_calender":{
                    "state":false
                },
                "camera":{
                    "state":false
                },
                "contacts":{
                    "state":false
                },
                "location":{
                    "state":true,
                    "stateDesc":0   // 此处0、1、2分别表示:LocationUnknownAccuracy = 0, // 未知精度    LocationReducedAccuracy = 1, // 模糊定位    LocationFullAccuracy = 2, //精准定位
                },
                "microphone":{
                    "state":false
                },
                "12123":{
                    "state":false,
                    "errorDesc":"unknown permission key"
                },
                "photo":{
                    "state":true,
                    "stateDesc": 'all', // 取值 all /  user_selected / none 分别表示 全部相册权限 / 部分相册权限 / 无相册权限 (adr 60001580 ios 80011321 新增)
                },
                "push":{
                    "state":true
                }

额外说明:

参数 类型 描述 必选 注明
permissions Array APP权限检查 需要检查的权限名
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:支持版本:IOS 80011266 Android 60001462

描述: APP权限检查
对应native接口:jumpAppSettings

示例
hysdk.jumpAppSettings({
    success: function (result) {
        successLog(result);
    },
    fail: function (err) {
        errLog(err);
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:支持版本:IOS 80011270 Android 60001469

描述: 风控参数加签
对应native接口:app.uti

示例
hysdk.signature({
    content: '', // 必须为 JSON 字符串
    success: function (result) {
        successLog(result);
    },
    fail: function (err) {
        errLog(err);
    }
});

额外说明:

参数 类型 描述 必选 注明
content String 加签内容 格式必须为 JSON 字符串
运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:支持版本:IOS 80011275 Android 60001480

描述: 弹窗指引
对应native接口:pushGuideView

示例
hysdk.pushGuideView({
  imgUrl: "", // 必须为字符串
  type: 1, // int 整型
  imgUrl: "", // 必须为字符串
  origin: "", // 必须为字符串
  success: function(result) {
    console.log(result);
  },
  fail: function(err) {
    console.error(err);
  },
});

额外说明:

参数 类型 描述 必选 注明
imgUrl String 图片url 格式必须为字符串
type number 类型 整型
businessType String 业务类型 格式必须为字符串
origin String 来源 格式必须为字符串
  • | success | Function | success 回调 | X | 常用参数 | | fail | Function | fail 回调 | X | 常用参数 |
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:支持版本:IOS 80011275 Android 60001480

描述: 一键保存多张图片
对应native接口:multiPicDownloadAndSaveAlbum

示例
hysdk.multiPicDownloadAndSaveAlbum({
    imgUrls: [
        'https://t7.baidu.com/it/u=2621658848,3952322712&fm=193&f=GIF',
        'https://t7.baidu.com/it/u=3631608752,3069876728&fm=193&f=GIF',
        'https://t7.baidu.com/it/u=124476473,2583135375&fm=193&f=GIF',
        'https://alifei03.cfp.cn/creative/vcg/800/new/VCG211184259367-BXL.jpg',
        'https://t7.baidu.com/it/u=2052154763,2830034343&fm=193&f=GIFghjgjhgjhgjgjghj'
    ],
    success: function(result) {
        // 成功就返回{}
        console.log(result);
    },
    fail: function(err) {
        /**
         * 错误回调返回结果说明
          HYErrorCodeUserCancle= 10023(状态码), 取消权限
          HYErrorCodeParamTypeInvalid= 10002, 参数错误,没有imageurls
          HYErrorCodeDataAcquireFailed= 10005, 图片下载保存失败
          HYErrorCodeTimeout= 10010, 超时

          状态码为10005/10010时,失败返回url列表。比如:{failurls:[ 'http://www.baidu.com/img1', 'http://www.souhu.com/img2.jpg']}
          状态码为10023/10002时, 失败返回 {}
         */
        console.error(err);
    }
});

额外说明:

参数 类型 描述 必选 注明
imgUrl String 图片url 格式必须为字符串
  • | success | Function | success 回调 | X | 常用参数 | | fail | Function | fail 回调 | X | 常用参数 |
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:支持版本:IOS 80011292 Android 60001528

描述: 保存单个视频到相册
对应native接口:videoDownloadAndSaveAlbum

示例
hysdk.videoDownloadAndSaveAlbum({
    videoUrl: 'https://source.qunarzz.com/site/images/wns/20230706_app1080x2340_13214.mp4',
    success: function(result) {
        // 成功就返回{}
        console.log(result);
    },
    fail: function(err) {
        /**
         * 错误回调返回结果说明
          HYErrorCodeUserCancle= 10023(状态码), 取消权限
          HYErrorCodeParamTypeInvalid= 10002, 参数错误,没有videoUrl
          HYErrorCodeDataAcquireFailed= 10005, 图片下载保存失败
         */
        console.error(err);
    }
});

额外说明:

参数 类型 描述 必选 注明
videoUrl String 视频url 格式必须为字符串
  • | success | Function | success 回调 | X | 常用参数 | | fail | Function | fail 回调 | X | 常用参数 |
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:支持版本:IOS 80011304 Android 60001553

描述: 获取地理位置新接口
对应native接口:geolocation.newGetCurrentPosition

示例
hysdk.newGetLocation({
    forceLocation: true, // 是否允许强制定位
    type: 'wgs84', // type 参数仅 wechat 支持,hy未实现 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
    timeout: 5000,  // 非必填。当定位时间超出此限制时,调用失败回调。单位:ms
    maximumAge: 3000, // 非必填。可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
    permissionCheckType: 0, // 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
    success: function(res){
        // res 结构
        res = {
            "type": "baidu", // gps , baidu
            "coords": {
                "latitude": 1,  // 纬度,浮点数,范围为90 ~ -90
                "longitude": 1, // 经度,浮点数,范围为180 ~ -180。
                "accuracy": 1, // 位置精度
                "timestamp": "111111", // 格式不统一
                "type": '', // GPS, baidu (未上线)
                "coordinateType": "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
            }
        }
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})

额外说明:

参数 类型 描述 必选 注明
type String 坐标类型 X 非常用参数,仅微信支持,默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
permissionCheckType Number 权限申请方式 X 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
timeout Number 超时设置 X 非常用参数,当定位时间超出此限制时,调用失败回调。单位:ms
maximumAge Number 缓存定位结果时间 X 非常用参数,可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
showNoPermsTips boolean 是否弹出"请您开启定位权限 仅安卓且vid: 60001462 支持 X 用户拒绝后,是否弹出"请您开启定位权限,否则无法使用定位功能"Toast提醒, 默认是true
forceLocation boolean 是否允许强制定位
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch √ (https)
wechat
ctrip

描述: 获取地理位置接口
对应native接口:geolocation.getCurrentPosition

示例
hysdk.getLocation({
    type: 'wgs84', // type 参数仅 wechat 支持,hy未实现 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
    timeout: 5000,  // 非必填。当定位时间超出此限制时,调用失败回调。单位:ms
    maximumAge: 3000, // 非必填。可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
    permissionCheckType: 0, // 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
    success: function(res){
        // res 结构
        res = {
            "type": "baidu", // gps , baidu
            "coords": {
                "latitude": 1,  // 纬度,浮点数,范围为90 ~ -90
                "longitude": 1, // 经度,浮点数,范围为180 ~ -180。
                "accuracy": 1, // 位置精度
                "timestamp": "111111", // 格式不统一
                "type": '', // GPS, baidu (未上线)
                "coordinateType": "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
            }
        }
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})

额外说明:

参数 类型 描述 必选 注明
type String 坐标类型 X 非常用参数,仅微信支持,默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
permissionCheckType Number 权限申请方式 X 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
timeout Number 超时设置 X 非常用参数,当定位时间超出此限制时,调用失败回调。单位:ms
maximumAge Number 缓存定位结果时间 X 非常用参数,可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
showNoPermsTips boolean 是否弹出"请您开启定位权限 仅安卓且vid: 60001462 支持 X 用户拒绝后,是否弹出"请您开启定位权限,否则无法使用定位功能"Toast提醒, 默认是true
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch √ (https)
wechat
ctrip

描述: 通过缓存获取地理位置接口
对应native接口:geolocation.newGetCacheLocation

示例
hysdk.newRequestCacheLocation({
    forceLocation: true, // 仅对老版的包生效 非必传 如果为true,则会调hysdk.getLocation进行定位;如果为false,则success返回的结果为空
    success: function(res) {
        // res 结构
        res = {
            type: 'baidu', // gps , baidu
            coords: {
                latitude: 1, // 纬度,浮点数,范围为90 ~ -90
                longitude: 1, // 经度,浮点数,范围为180 ~ -180。
                accuracy: 1, // 位置精度
                timestamp: '111111', // 格式不统一
                type: '', // GPS, baidu (未上线)
                coordinateType: "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
            },
        };
    },
    fail: function() {
        alert(JSON.stringify(arguments));
    },
});

额外说明:

参数 类型 描述 必选 注明
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) x
touch x
wechat x
ctrip x

描述: 监听截屏事件,一定要配合 registerScreenshot 接口一起使用,两个 api 先后调用顺序无强制要求
区别:onReceiveScreenshot 用于监听截屏事件,截屏成功后会触发其回调;而 registerScreenshot 是注册截屏事件
对应native接口:onReceiveScreenshot

示例
hysdk.registerScreenshot({
    success: function() {
        hysdk.log('监听截屏成功');
    },
    fail: function() {
        hysdk.log('监听截屏失败');
    }
});

hysdk.onReceiveScreenshot({
    success: function() {
        hysdk.log('截屏成功');
    },
    fail: function() {
        hysdk.log('截屏失败');
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 打开新的webView
使用场景:搞SPA的话native导航栏没法跟h5实现同步的动画效果,故此处将定义导航栏的API加入新开webView的API中,由调用新webView者决定下一页的导航栏样式。
对应native接口:webview.open

示例
// hy
hysdk.openWebView({
    url: 'http://address.of.target.url/',

    // 以下参数当位于大客户端时可用:
    // 指定将要打开的 view 的名称,与 setWebViewAttr 设置 name 的作用类似
    // 与其主要区别在于,openWebView 是给下一个页面设置 name,而 setWebViewAttr 是给当前页设置
    name: 'nameOfView',
    // view 通信数据,子view通过getInitData获取
    data: {},

    // 页面打开的进入的方式,可选,默认为'moveFromRight',
    //'moveFromRight'为从右边切换进入,'moveFromBottom'为从屏幕底部进入屏幕
    animate: 'moveFromRight',

    // navigation已经满足不了你了,这不重要
    type: 'navibar-normal',  // navigation样式,自己定制吧;
    /*
     * type:{
     * navibar-normal
     * navibar-transparent, // 透明导航条
     * navibar-none, // 无导航条
     * }
     */

    // 调整导航栏的外观,详情见附录
    navigation: {
        title: { // 指定标题
            style: 'text', // 标题样式: text: 普通文本 | location: 标题右侧带一个小箭头
            text: '我是标题' // 标题文字
        },
        left: { // 指定左侧按钮
            style: 'text', // 按钮样式: text: 文本按钮 | icon: 图标按钮, 不填则保留一个默认的返回按钮
            text: '按钮', // 按钮样式为text时,应用此字段作为按钮文字
            icon: '\uf067' // 按钮样式为icon时,应用此字段作为图标
        },
        right: {
            // 跟left相同,但无默认按钮
        }
    },
    //页面关闭后返回的数据
    onViewBack: function(res){
        // res: 根据用户反馈的数据展示
    }
});

// h5
hysdk.openWebView({
    url: 'http://address.of.target.url/',
    name: 'DescriptiveWindowName', // A name for the new window
    features: 'resizable,scrollbars,status',
});

额外说明:

参数 类型 说明 iOS Android touch wechat
url string webview的url地址,当不指定协议时,会根据当前页面的协议自动补齐。
例如当前页面是 http 协议,url 值是 '//www.qunar.com',自动补齐为 'http://www.qunar.com',若指定则指定的优先级最高(自动补齐协议仅 Hy 支持,hysdk 1.2.4 及以上版本支持)
X X
name view的名字
data object view通信数据,子view通过getInitData获取
animate string 新页面进入的方式,可选
缺省值为moveFromRight
也可为moveFromBottom
也可以是 none
type string navibar的类型
缺省值为navibar-normal
也可为navibar-transparent (透明的navibar)、navibar-none (没有navibar)
navigation object navigation参数
type为navibar-normal时
type为navibar-transparent时
onViewBack function A 页面使用 openWebView 打开新页面 B 时传入该参数,当在 B 页面中使用 closeWebView 关闭页面并回到 A 页面,同时回传数据,在 A 页面可以通过该函数接收回传的数据。hysdk 1.2.0 及以上版本支持
注意:h5环境下,即为window.open方法,传参数改成传对象格式的参数,对应url, name和features,参考示例和mdn文档

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch
wechat X
ctrip

描述: 关闭当前view
使用场景:用户进行操作后,直接关闭view的接口。可传递数据
对应native接口:webview.back

示例
hysdk.closeWebView({
    name: 'nameOfView'  // 非必填。不填回退到上级。如果位于大客户端内,可指定view名称,直接回退到该名称的view上
    // 非必须。view 通信,传递数据到指定view
    ,data: {

    }
});

额外说明:

参数 类型 描述 必选 注明
name String 视图名 X 非常用参数,不填回退到上级。如果位于大客户端内,可指定view名称,直接回退到该名称的view上
data Object 回传参数 X 非常用参数,hysdk 1.2.0 及以上版本支持
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 关闭指定的view (1.3.6 以上版本提供)
使用场景:指定关闭历史中的某一个 View
对应native接口:webview.close

示例
hysdk.closeTargetWebView({
    name: 'nameOfView' // 指定关闭历史中的某一个 View
});

额外说明:

参数 类型 描述 必选 注明
name String 视图名 要关闭的 View 的名称

注: 依赖大客户端 2018 年 6 月版。 iOS 80011158,android hy 64

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 设置当前view的属性
使用场景:用户需要改变当前view的展示属性时
对应native接口:webview.attribute

示例
hysdk.setWebViewAttr({
    // webView是否可以滚动
    scrollEnabled: true, //是否允许native滚动(Android无效)
    // iOS滑动出document区域,展示出的背景颜色
    backgroundColor: '#fff', // Hytive 1.0 webview的背景颜色(Android无效)
    name:'name', // Hytive 1.0
    bounces:'true' //webview的弹性效果
});

额外说明:

参数 类型 说明 iOS Android touch wechat 支持版本
scrollEnabled bool 是否允许native的webview支持滚动,默认值是true X X X 一直支持
backgroundColor string iOS滑动出document区域,展示出的背景颜色, 值的形式'#fff'
name string webview的name,必须要保证唯一,否则路由会乱
bounces bool webview的弹性效果,默认值为true。当scrollEnabled为false时,由于不支持滚动,所以这个值无效 X iOS: 版本号4.10.5, vid 80011129
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 获取初始化数据
使用场景:由父级view打开的view,获取父view传递的数据
对应native接口:webview.getInitData

示例
hysdk.getInitData({
    success: function(data){
        // data格式由父view传递的数据决定
    },
    fail: function(){
        //
    }
})

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 设置状态栏颜色
使用场景:希望修改状态栏颜色,比如页面是黑色,希望设置状态栏颜色为白色
对应native接口:qunarnative.status

示例
hysdk.setStatus({
    // 设置状态栏颜色
    style: 'light', //状态栏颜色,只能为default(黑色)或者light(白色),不传参数(不代表style为空)时默认为default。

    success: function(res){
        console.log(res.style);//设置成功的状态栏颜色
    },
    fail: function(res){
        console.log('%s %s', res.errcode, res.errmsg);
    }
})

额外说明:

参数 类型 描述 必选 注明
style String 状态栏颜色 X 常用参数,只能为default(黑色)或者light(白色),不传参数(不代表style为空)时默认为default
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 设置webview是否支持ios的后退手势
使用场景:需要单独开启或关闭ios的后退手势时
对应native接口:qunarnative.gesturesView

示例
hysdk.enableBackGesture({
    enable: true/false  // true为开启,false为禁止
});

额外说明:

运行环境 是否支持
Hy √(IOS)
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 隐藏 Loading 页面
对应native接口:webview.hideLoadView

示例
 hysdk.hideLoadView({})

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 获取 View History
对应native接口:view.list

示例
hysdk.getHistory({
    success: function (data) {
        console.log(data);
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 获取 getCookie
对应native接口:getRecentCookie

示例
./getCookie.js[1-7]

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 手动增加页面加载完成的埋点(仅ios)
对应native接口:webview.businessEndLog

示例
hysdk.businessEndLog({
    success: function(res){
        // 上报日志成功
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 获取当前页面是否有导航栏
对应native接口:webview.headerStatus

示例
hysdk.getHeaderStatus({
    success: function(res){
        // 返回的数据
        res = {
            hasHeader: true // 返回是否有header的布尔值
        }
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 打开View时,触发
使用场景:需要在入场动画结束时做相应处理时绑定该事件。此页面显示时触发
对应native接口:webview.onShow

示例
hysdk.onShow({
    success: function(){
        // Do something
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 关闭View时,触发
使用场景:需要在出场动画结束时做相应处理时绑定该事件。此页面隐藏时触发
对应native接口:webview.onHide

示例
hysdk.onHide({
    success: function(){
        // Do something
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 下一个页面关闭后接收数据触发
使用场景:需要接收下一个页面反馈数据时绑定该事件。作为前一个页面,下一个页面关闭后被触发
对应native接口:webview.onReceiveData

示例
hysdk.onReceiveData({
    success: function(){
        // Do something
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 下一个页面关闭后触发
使用场景:需要知道下一页面关闭情况时绑定该事件。
对应native接口:webview.targetClosed

示例
hysdk.onCloseWebView({
    success: function(){
        // Do something
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 页面loading结束前触发
使用场景:解决双loading问题。在loading将要结束时,会触发这个消息,此时显示的还是hy的loading动画页面。前端回调 callback( {data: true} ) 则阻止隐藏当前的loading动画页面,之后可以调用 hysdk.hideLoadView( ) 来隐藏loading动画页面。前端回调callback( {data: false} )则立即隐藏loadingy动画。如果前端没有回调的话,则默认在500ms后关闭loading动画页面。更具体的请参考wiki
对应native接口:loadingview.close

示例
hysdk.onLoadingClose({
    success: function( data, callback){
        callback( {data: true} );
        //前端是否阻止隐藏loading动画页面,如果没有调用callback则500ms后关闭loading动画页面
        //{data: true}时loading动画页面会一直显示,隐藏由前端控制。在需要隐藏loading动画页面的时候调用函数 hysdk.hideLoadView();
        //{data: false}时loading动画页面立即隐藏
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 改变当前view导航样式
使用场景:当导航样式需要在用户交互发生改变的情况下调用
对应native接口:navigation.refresh

示例
hysdk.navRefresh(
    // 与openWebview中的navigation字段相同,详情见附录。
    {
        title: {
            style: 'location',
            text: '北京'
        }
    }
)

额外说明:

参数 类型 说明 IOS Android touch wechat
object navigation参数,见附录 X X
运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 获取当前view导航状态,隐藏还是显示(仅仅在设置有导航栏的情况下有效)
使用场景:需要获取当前view的导航栏的状态
对应native接口:navigation.displayStatus

示例
hysdk.getNavDisplayStatus({

    success: function(res){
        var navStatus = res.status;//当前导航栏的状态
        //  导航栏状态可能的值为:
        //  "showed"    显示
        //  "hidden"    隐藏
        //  "showing"   显示动画中
        //  "hiding"    隐藏动画中
    },
    fail: function(res){
        console.log('%s %s', res.code, res.errmsg);
    }
})

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 设置当前view导航状态,隐藏或者显示(仅仅在设置有导航栏的情况下有效)
使用场景:需要暂时隐藏导航栏或者把隐藏的导航栏显示出来的时候使用
对应native接口:navigation.display

示例
hysdk.setNavDisplayStatus({
    action:"hide",  //需要设置的状态,只能为"hide"和"show"
    animate:"movetop", //暂时支持2个值,"none"为无动画,"movetop"为移动动画。可选,无值则默认为"none"
    time:0.4, //动画的持续时间,单位为秒,只有当animate不为"none"是有效。可选,无值则默认为0.4
    hideStatusBar:true,// 当action为"hide"时是否隐藏状态栏,仅支持iOS。可选,无值则默认为false
    success: function(){
        // do something  动画完成后想要执行的操作
    },
    fail: function(res){
        console.log('%s %s', res.code, res.errmsg);
    }
})

额外说明:

参数 类型 说明 iOS Android touch wechat
action string 要设置的状态 X X
animate string 使用的动画,暂时支持"none"(无动画)和"movetop"(移动动画)。可选,默认为"none"。
time number 动画持续时间,单位为秒。可选,默认为0.4
hideStatusBar BOOL 当action为"hide"时是否隐藏状态栏。
为true时,状态栏也会被隐藏。可选,默认为false
X X X
运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 监听导航条的点击事件
使用场景:需要在点击导航条时触发一定条件时调用
对应native接口:navigation.click

示例
hysdk.onNavClick({
    success: function( data ){
        switch( data.button ) {
            case 'title':
                alert('title clicked');
                break;
            case 'left':
            case 'right':
                break;
            case 'some_name_specified_before':
                alert('customize name button clicked');
        }
    }
});

// 如果为导航条中的组件指定了name属性,则button的值会使用组件对应的name属性的值。
// 如果定制了导航栏左侧按钮的行为,则需要在callback中通知native此事件已处理。
// 如果定制了导航栏左侧按钮的行为,如果未通知,native会在超时500ms后认定h5无法响应,调用关闭webview的方法。

hysdk.onNavClick({
    success: function( data, callback){

        switch( data.button ) {
            case 'left':
                // 需要回调客户端,通过通知客户端数据为true告诉native事件已经处理,停止默认事件
                callback( {data: true} );
                // do something
                break;
            default:
                // do something
        }
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 关闭当前窗口
对应native接口:webview.back

示例
hysdk.closeWindow({});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat
ctrip

描述: 隐藏右上角菜单(当前版本效果和 hideAllNonBaseMenuItem 相同)
对应native接口:hideOptionMenu

示例
hysdk.hideOptionMenu({});

额外说明:

运行环境 是否支持
Hy X
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 显示右上角菜单(当前版本效果和 showAllNonBaseMenuItem 相同)
对应native接口:showOptionMenu

示例
hysdk.showOptionMenu({});

额外说明:

运行环境 是否支持
Hy X
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 批量隐藏功能按钮
对应native接口:hideMenuItems

示例
hysdk.hideMenuItems({
    menuList: ['menuItem:favorite'] // 要隐藏的菜单项
});

额外说明:

参数 类型 描述 必选 注明
menuList Array 隐藏的菜单项 仅微信支持

基本类

  • 举报: "menuItem:exposeArticle"
  • 调整字体: "menuItem:setFont"
  • 日间模式: "menuItem:dayMode"
  • 夜间模式: "menuItem:nightMode"
  • 刷新: "menuItem:refresh"
  • 查看公众号(已添加): "menuItem:profile"
  • 查看公众号(未添加): "menuItem:addContact"

传播类

  • 发送给朋友: "menuItem:share:appMessage"
  • 分享到朋友圈: "menuItem:share:timeline"
  • 分享到QQ: "menuItem:share:qq"
  • 分享到Weibo: "menuItem:share:weiboApp"
  • 收藏: "menuItem:favorite"
  • 分享到FB: "menuItem:share:facebook"

保护类

  • 调试: "menuItem:jsDebug"
  • 编辑标签: "menuItem:editTag"
  • 删除: "menuItem:delete"
  • 复制链接: "menuItem:copyUrl"
  • 原网页: "menuItem:originPage"
  • 阅读模式: "menuItem:readMode"
  • 在QQ浏览器中打开: "menuItem:openWithQQBrowser"
  • 在Safari中打开: "menuItem:openWithSafari"
  • 邮件: "menuItem:share:email"
  • 一些特殊公众号: "menuItem:share:brand"
运行环境 是否支持
Hy X
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 批量显示功能按钮接口
对应native接口:showMenuItems

示例
hysdk.showMenuItems({
    menuList: ['menuItem:favorite'] // 要显示的菜单项
})

额外说明:

菜单列表如 hideMenuItems

运行环境 是否支持
Hy X
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 隐藏所有非基础按钮
对应native接口:hideAllNonBaseMenuItem

示例
hysdk.hideAllNonBaseMenuItem({});

额外说明:

运行环境 是否支持
Hy X
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 显示所有功能按钮
对应native接口:showAllNonBaseMenuItem

示例
hysdk.showAllNonBaseMenuItem({});

额外说明:

运行环境 是否支持
Hy X
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 拍照或从手机相册中选取图片
推荐使用 hysdk.selectImage,该 API 将会被废弃
对应native接口:chooseImage

示例
hysdk.chooseImage({
    // wechat only
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有

    //Android only
    localIds:["1.jpg","2.jpg"], //表示之前已经选择过的图片。
                                //在相册选择时,'localIds' 表示的图片会被置为已经勾选的状态。
                                //返回值中会包含 'localIds' 中的所有图片。
                                //不传入该参数时,则会清空native对已选图片的记录,导致本次调用之前所选择的图片无法被显示和上传
                                //从15年10月新架构发布以后由于iOS公共相册组件存在bug,iOS暂时不支持使用

    // common
    resType: 'remote', // 必传参数,否则在 Android 高版本无法加载图片
    count: 1, //允许用户选择图片的最大数,默认为9
    // 缩略图参数支持iOS独立客户端1.3.0+ 和Android browser 29+
    thumbnail: {// 缩略图的参数(可选,如不填则不返回缩略图列表),下列参数可以2选一,也可同时设置
        maxPixel : 720, // 图片的长、宽最大像素尺寸。
                        // 也可以使用'original'、'high'、'middle'、'low'按预设品质压缩
                        // 分别对应为原图、1200、800、400
        quality: 80     // JPG压缩参数,不改变图片尺寸。为1-100之间的整数。
                        // 也可以使用'original'、'high'、'middle'、'low'按预设品质压缩
                        // 分别对应为100、90、70、50
    },
    success: function (res) {
        // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
        var localIds = res.localIds;
        image.localIds = localIds;
        alert( JSON.stringify(localIds) )

        // 返回选定照片缩略图的本地ID列表,thumbnail可以作为img标签的src属性显示图片
        var thumbnails = res.thumbnails;
        image.thumbnails = thumbnails;
    },
    fail: function(res){
        alert( JSON.stringify(res) )
    }
});

额外说明:

参数 类型 说明 iOS Android touch wechat
sizeType string array 指定原图还是压缩图,默认二者都有 X X X
sourceType string array 指定来源是相册还是相机,默认二者都有
localIds string array 上次已经选择过的图片
从15年10月iOS新架构发布以后
由于iOS公共相册组件存在bug,iOS暂时不支持使用
X X
resType string 转化协议,协议转化成 //imghy + imgurl,值为'remote',必传,否则在 Android 高版本无法加载图片 X X
count number 允许用户选择图片的最大数,默认为9 大客户端 vid: 80011102+
独立客户端 HytiveLib: 1.1.1+
大客户端browser vid: 27+ X
thumbnail maxPixel number
或者
string
缩略图长宽最大尺寸,
可以使用'original'、'high'、'middle'、'low'
按预设品质压缩
分别对应为原图、1200、800、400
新大客户端、独立客户端 HytiveLib: 1.3.0+ 大客户端browser vid: 29+ X X
quality number
或者
string
缩略图JPG压缩参数,尺寸不变。
为1-100之间的整数。
也可以使用'original'、'high'、'middle'、'low'
按预设品质压缩
分别对应为100、90、70、50
独立客户端 HytiveLib: 1.3.0+ 大客户端browser vid: 29+ X X

返回字段说明:

返回字段 类型 说明 IOS Android touch wechat
localIds string array 返回选定照片的本地ID列表
localId可为img标签的src属性
X
thumbnails string array 只有请求中设置了thumbnail参数才会返回
返回选定照片的本地缩略图ID列表
thumbnail可为img标签的src属性
新大客户端、独立客户端 HytiveLib: 1.3.0+ 大客户端browser vid: 29+ X X
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch X
wechat
ctrip

描述: 拍照或从手机相册中选取图片
新版 chooseImage,推荐使用该 API 替换 hysdk.chooseImage
对应native接口:chooseImage.v1

示例
hysdk.selectImage({
    // wechat only
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有

    //Android only
    localIds:["1.jpg","2.jpg"], //表示之前已经选择过的图片。
                                //在相册选择时,'localIds' 表示的图片会被置为已经勾选的状态。
                                //返回值中会包含 'localIds' 中的所有图片。
                                //不传入该参数时,则会清空native对已选图片的记录,导致本次调用之前所选择的图片无法被显示和上传
                                //从15年10月新架构发布以后由于iOS公共相册组件存在bug,iOS暂时不支持使用

    // common
    count: 1, //允许用户选择图片的最大数,默认为9
    // 缩略图参数支持iOS独立客户端1.3.0+ 和Android browser 29+
    thumbnail: {// 缩略图的参数(可选,如不填则不返回缩略图列表),下列参数可以2选一,也可同时设置
        maxPixel : 720, // 图片的长、宽最大像素尺寸。
                        // 也可以使用'original'、'high'、'middle'、'low'按预设品质压缩
                        // 分别对应为原图、1200、800、400
        quality: 80     // JPG压缩参数,不改变图片尺寸。为1-100之间的整数。
                        // 也可以使用'original'、'high'、'middle'、'low'按预设品质压缩
                        // 分别对应为100、90、70、50
    },
    success: function (res) {
        // 返回选定照片的ID列表和拍摄角度
        var localImgs = res.localImgs;
        alert( JSON.stringify(localImgs) )

        // 返回选定照片缩略图的本地ID列表,thumbnail可以作为img标签的src属性显示图片
        var thumbnails = res.thumbnails;
    },
    fail: function(res){
        alert( JSON.stringify(res) )
    }
});

额外说明:

参数 类型 说明 iOS Android touch wechat
sizeType string array 指定原图还是压缩图,默认二者都有 X X X
sourceType string array 指定来源是相册还是相机,默认二者都有
localIds string array 上次已经选择过的图片
从15年10月iOS新架构发布以后
由于iOS公共相册组件存在bug,iOS暂时不支持使用
X X
count number 允许用户选择图片的最大数,默认为9 大客户端 vid: 80011102+
独立客户端 HytiveLib: 1.1.1+
大客户端browser vid: 27+ X
thumbnail maxPixel number
或者
string
缩略图长宽最大尺寸,
可以使用'original'、'high'、'middle'、'low'
按预设品质压缩
分别对应为原图、1200、800、400
新大客户端、独立客户端 HytiveLib: 1.3.0+ 大客户端browser vid: 29+ X X
quality number
或者
string
缩略图JPG压缩参数,尺寸不变。
为1-100之间的整数。
也可以使用'original'、'high'、'middle'、'low'
按预设品质压缩
分别对应为100、90、70、50
独立客户端 HytiveLib: 1.3.0+ 大客户端browser vid: 29+ X X

返回字段说明:

返回字段 类型 说明 IOS Android touch wechat
localIds array 只有微信有该参数,返回选定照片的本地ID列表
localId可为img标签的src属性
X X X
localImgs array 对象数组,每个对象元素包括照片ID和拍摄角度,例如:[{ angle: 0, id: "//imghy/storage/emulated/0/Pictures/xxx/3.png"}, ...] X X
thumbnails array 对象数组,每个对象元素包括照片ID和拍摄角度,
只有请求中设置了thumbnail参数才会返回
返回选定照片的本地缩略图ID列表
thumbnail可为img标签的src属性
新大客户端、独立客户端 HytiveLib: 1.3.0+ 大客户端browser vid: 29+ X X

注意:该接口 hysdk 1.2.7 及以上版本支持,iOS 4.10.18 及以上版本、Android 8.6.4 及以上版本支持

hysdk 1.3.4 版本,selectImage 对老版本进行了兼容,因为 iOS 4.10.18 及以上版本、Android 8.6.4 及以上版本的客户端才支持 chooseImage.v1 桥, 在 iOS 4.10.18、Android 8.6.4 之前的版本,调用 hysdk.selectImage,内部会调用 chooseImage,所以,业务可以直接使用 hysdk.selectImage 代替 hysdk.chooseImage,而不需要业务自己兼容老版本; 需要注意的是:在 iOS 4.10.18、Android 8.6.4 之前的版本中使用 checkJsApi 检测 selectImage,得到的值还是 false(进行了兼容,实际可用);返回的数据中图片的拍摄角度都默认是 0(之前本身就不支持获取拍摄角度)

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 上传图片
对应native接口:uploadImage.v1

示例
hysdk.uploadImage({
    localId: image.localIds[0], // 需要上传的单张图片的本地ID,由selectImage(chooseImage 现在不推荐使用)接口获得
    // 根据上传http请求的response状态码判断回调函数,状态码为200时调用success,否则调用fail
    // success函数的res.responseData参数为服务器返回的数据
    success: function (res) {
        var serverMessage = res.responseData; // 图片服务器返回的数据内容,string类型
        alert( JSON.stringify(res) )
    },
    fail: function (res) {
        alert( JSON.stringify(res) )
    },

    //以下4个参数hy独有
    serverAddress: "http://upload.user.qunar.com/userVerifyInfo/upload?token=123456",
    serverParams: {    // post到服务器的参数map(可选)
        paramA: "123",
        paramB: "456"
    },
    fileKey: "file", // 服务器端图片文件所对应的参数名(可选,默认值为“file”)

    maxPixel : 720, //图片的长、宽最大像素尺寸。
                    //也可以使用'original'、'high'、'middle'、'low'按预设品质压缩
                    //分别对应为原图、1200、800、400
    quality: 80     // JPG压缩参数,不改变图片尺寸。为1-100之间的整数。
                    //也可以使用'original'、'high'、'middle'、'low'按预设品质压缩
                    //分别对应为100、90、70、50
});

额外说明:

请求参数说明:

参数 类型 说明 iOS Android touch wechat
localId string 需要上传的图片的本地ID,由selectImage(chooseImage 现在不推荐使用)接口获得,与 localIds 二选一,localId 上传一张图片 X
localIds Array 需要上传的图片的本地ID,由selectImage(chooseImage 现在不推荐使用)接口获得,与 localId 二选一,localIds 上传多张图片,前端控制的队列上传,多次调用桥(仅 hy 支持, hysdk 1.2.2 及以上版本支持) X
serverAddress string 上传服务地址。当不指定协议时,会根据当前页面的协议自动补齐。
例如当前页面是 http 协议,serverAddress 值是 '//www.qunar.com',自动补齐为 'http://www.qunar.com',若指定则指定的优先级最高(自动补齐协议仅 Hy 支持,hysdk 1.2.4 及以上版本支持)
上传可以使用公共接口 https://picture.qunar.com/api/img/upload
serverParams map post到服务器的参数map(可选)
fileKey string 服务器端接口中文件对应的参数名
(可选,默认值为"file")
maxPixel number
或者
string
上传图片长宽最大尺寸,
可以使用'original'、'high'、'middle'、'low'
按预设品质压缩
分别对应为原图、1200、800、400
quality number
或者
string
上传图片JPG压缩参数,尺寸不变。
为1-100之间的整数。
也可以使用'original'、'high'、'middle'、'low'
按预设品质压缩
分别对应为100、90、70、50

上传单张图片返回字段说明:

返回字段 类型 说明 IOS Android touch wechat
responseData string 服务器返回的数据 X X(object)

上传多张图片返回字段说明:

返回字段 类型 说明 IOS Android touch wechat
data Array 服务器返回的数据(每个元素与上传单张返回的数据结构一致) X X(object)

微信平台,上传后会返回 mediaId,使用公共接口将 mediaId 转化为线上图片地址 https://picture.qunar.com/api/wechatImg/upload 此接口,只能用于使用公司主微信公众号接口上传的图片。

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch X
wechat
ctrip X

描述: 预览图片
对应native接口:previewImage

示例
hysdk.previewImage({
    current: '', // 当前显示的图片链接
    urls: [] // 需要预览的图片链接列表
});

额外说明:

参数 类型 描述 必选 注明
current String 当前显示的图片链接 常用参数,仅微信支持
urls Array 需要预览的图片链接列表 常用参数,仅微信支持
运行环境 是否支持
Hy X
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 下载图片
对应native接口:downloadImage

示例
hysdk.downloadImage({
    serverId: '', // 需要下载的图片的服务器端ID,由uploadImage接口获得
    isShowProgressTips: 1, // 默认为1,显示进度提示
    success: function (res) {
        var localId = res.localId; // 返回图片下载后的本地ID
    },
    fail: function(res){
        console.log('%s %s', res.code, res.errmsg);
    }
});

额外说明:

参数 类型 描述 必选 注明
serverId String 需要下载的图片的服务器端ID,由uploadImage接口获得 常用参数,仅微信支持
isShowProgressTips Number 显示进度提示 常用参数,仅微信支持
success Function success 回调 X 常用参数,仅微信支持,可获取图片下载后的本地ID
fail Function fail 回调 X 常用参数,仅微信支持
运行环境 是否支持
Hy X
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 转换图片路径
对应native接口:image.convertPath

示例
hysdk.convertPath({
    path: '/storage/emulated/0/DCIM/Camera/1470779057620.jpg', // 本地路径(必填)
    thumbnail: { // 缩略图参数(可选,如果不填该参数,则只是将本地路径转换为'//imghy/[path]'路径,不会对图片进行处理),下列参数可以2选一,也可同时设置
        quality: 20,
        maxPixel: 'low'
    },
    success: function(res) { // res:转换后的图片路径 {url:'//imghy/[path]'}
        // res: {
        //     url: "//imghy/storage/emulated/0/DCIM/Camera/1470779057620.jpg"
        // }
        console.log(res);
    },
    fail: function(err) {
        console.log(err);
    }
});

额外说明:

参数 类型 描述 必选 注明
path String 本地图片路径 常用参数
thumbnail Object maxPixel 图片的长、宽最大像素尺寸 X iOS支持数字或字符串,Android仅支持数字,可以使用'original'、'high'、'middle'、'low'按预设品质压缩,分别对应为原图、1200、800、400
quality JPG压缩参数 X 支持数字或字符串,不改变图片尺寸。为1-100之间的整数。可以使用'original'、'high'、'middle'、'low'按预设品质压缩,分别对应为100、90、70、50
success Function 成功回调 X 常用参数
fail Function 失败回调 X 常用参数
注意:该接口 hysdk 1.2.5 及以上版本支持,iOS 4.10.16 及以上版本、Android 8.6.2 及以上版本支持

运行环境 是否支持
Hy
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 调用 scheme 获取回执
对应native接口:schemeForResult

示例
hysdk.schemeForResult({
    //调用Native的scheme,比如打开日历的scheme,必填
    scheme: 'qunariphone://xxxxx',
    //新增新路由的action方式的回调,设置useAction=true生效,此标识仅对Adr生效
    useAction: true,
    //Native回调成功(success()是否调用取决于Native代码是否回调)
    success: function (data) {
        //data 是通过scheme调用Native后,Native返回的数据
        //需要注意的是这个data的结构是由Native逻辑所决定的,
        //因此如果iOS和安卓的Native代码实现不一致,该data的结构也会不一致!!!
    },

    //scheme打开失败或者参数错误
    fail: function (err) {
        alert(JSON.stringify(err));
    },
});

额外说明:

参数 类型 描述 必选 注明
scheme String scheme 地址 常用参数
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 通过launchMiniProgram唤起小程序
使用场景:从APP中跳转至某一微信小程序的指定页面

示例

hysdk.launchMiniProgram({
    userName: 'gh_7ffb9c5d761f',
    path:'/home/pages/index',
    miniprogramType:0,
    success: function(data) {
        //
    },
    fail: function() {
        //
    }
});

额外说明:

参数 类型 描述 必选 注明
userName String 小程序原始Id 常用参数
path String 唤起小程序页面的可带参路径 X 常用参数
miniprogramType Number 小程序类型 1 (开发版)2(体验版)0(线上版) X 常用参数
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:支持版本:IOS 80011196 Android 60001305

描述: 唤起分享dialog
对应native接口:doShare

示例
hysdk.showShareItems({
    success: function () {
        // 用户点击了分享dialog中的分享按钮
        // do something
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser
Hy Browser (非qunar)
touch X
wechat X
ctrip X

注:v1.3.0 以后,推荐使用新 API - Share

描述: 主动调起“分享到朋友圈”分享内容接口
对应native接口:shareTimeline

示例
hysdk.shareTimeline({
    title: '分享到朋友圈', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到朋友圈,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('朋友圈分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('朋友圈分享失败')
    } // 用户取消分享后执行的回调函数
});

额外说明:

参数 类型 描述 必选 注明
title String 标题 X 常用参数
link String 链接 X 常用参数
desc String 描述 X 常用参数
imgUrl String 分享图标 URL X 常用参数
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

注:v1.3.0 以后,推荐使用新 API - Share

描述: 主动调起“分享给朋友”分享内容接口
对应native接口:sendAppMessage

示例
hysdk.shareAppMessage({
    title: '分享到微信朋友', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到微信朋友,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('微信朋友分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('微信朋友分享取消')
    } // 用户取消分享后执行的回调函数
});

额外说明:

参数与 shareTimeline API一致

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

注:v1.3.0 以后,推荐使用新 API - Share

描述: 主动调起“新浪微博”分享内容接口
对应native接口:shareWeiboApp

示例
hysdk.shareWeiboApp({
    title: '分享到新浪微博', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到新浪微博,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('新浪微博分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('新浪微博分享取消')
    } // 用户取消分享后执行的回调函数
});

额外说明:

参数与 shareTimeline API一致

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

注:v1.3.0 以后,推荐使用新 API - Share

描述: 主动调起“短信”分享内容接口
对应native接口:shareSMS

示例
hysdk.shareSMS({
    title: '分享到短信', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到短信,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('短信分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('短信分享失败')
    } // 用户取消分享后执行的回调函数
});

额外说明:

参数与 shareTimeline API一致

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

注:v1.3.0 以后,推荐使用新 API - Share

描述: 主动调起“邮件”分享内容接口
对应native接口:shareEmail

示例
hysdk.shareEmail({
    title: '分享到邮件', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到邮件,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    // 以下方法无效果
    success: function () {
        alert('邮件分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('邮件分享失败')
    } // 用户取消分享后执行的回调函数
});

额外说明:

参数与 shareTimeline API一致

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

注:v1.3.0 以后,推荐使用新 API - Share

描述: 主动调起“去哪儿好友”分享内容接口
对应native接口:shareQunarIM

示例
hysdk.shareQunarIM({
    title: '分享到去哪儿好友', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到去哪儿好友描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    // 以下方法无效果
    success: function () {
        alert('去哪儿好友分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('去哪儿好友分享失败')
    } // 用户取消分享后执行的回调函数
});

额外说明:

参数与 shareTimeline API一致

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:v1.3.0 以后,推荐使用新 API - Share

描述: 注册监听后,就会监听页面的截屏事件。一旦用户进行了截屏操作,就会在屏幕右侧有个中间页提示分享
对应native接口:registerScreenshotShare

示例
hysdk.registerScreenshotShare({
    scheme: 'hotel/main', // 这里举例可以用’hotel/main’,业务线需要根据自己的需要传入页面的scheme
    success: function (data) {
        hysdk.log(JSON.stringify(data));
    },
    fail: function (err) {
        hysdk.log(JSON.stringify(err));
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:v1.3.0 以后,推荐使用新 API - Share

描述: 注册监听后,就会监听页面的截屏事件。一旦用户进行了截屏操作,就会在屏幕右侧有个中间页提示分享
对应native接口:registerShareWithPreview

示例
./registerShareWithPreview.js[1-11]

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:v1.3.0 以后,推荐使用新 API - Share

描述: 当页面退出,或者不需要截屏监听的时候,就需要移除这个监听了。 需要注意的是:只要注册了一个监听,就需要在使用监听完成后移除一个监听。
不需要传入参数,没有回调
对应native接口:unregisterScreenshotShare

示例
hysdk.unregisterScreenshotShare();

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:v1.3.0 以后,推荐使用新 API - Share

描述: 用户主动截屏分享,当按下分享按钮,就会执行这个功能,弹出右侧的中间页提示分享。 用户主动截屏的话,不用注册监听。
对应native接口:screenshotAndShare

示例
hysdk.screenshotAndShare({
    scheme: 'hotel/main',
    success: function (data) {
        hysdk.log(JSON.stringify(data));
    },
    fail: function (err) {
        hysdk.log(JSON.stringify(err));
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注:v1.3.0 以后,推荐使用新 API - Share

描述: 对指定内容的web页面提供页面保存为图片和将图片分享至微信的功能。
对应native接口:longPic.share

示例
hysdk.longPicShare({
    // 注:
    // 1.HTML可以是完整的网页内容
    // 2.支持img引入外部图片
    // 3.支持link标签
    // 4.支持script标签
    // 5.link,script建议不外链
    // 6.提供给用户的操作:分享至微信好友、分享至微信朋友圈、保存到本地相册
    picHtml: "<html><body><div style='color: red; font-size: 35px; width: 100%; text-align: center'>长图分享</div></body></html>", // web页面的html文本
    success: function(res) {
        // res = {
        //     "success":true,
        //     "type":0
        // }
        // 注:
        // 1.只在长图分享页面关闭时调用,且只在用户有分享或保存操作后回调
        // 2.success:最后一个操作是否操作成功(true | false)
        // 3.type:用户最后一个操作(0:分享至微信好友, 1:分享至微信朋友圈, 3:保存至相册)
    }
})

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

注: 支持版本:iOS 80011166,android 60001237, hysdk版本: 1.3.12

描述: 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareTimeline

示例
hysdk.onMenuShareTimeline({
    title: '分享到朋友圈', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到朋友圈,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});

额外说明:

参数与 shareTimeline API 基本一致(大客户端环境下不支持 success、fail 回调)

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 获取“分享给朋友”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareAppMessage

示例
hysdk.onMenuShareAppMessage({
    title: '分享到微信朋友', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到微信朋友,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});

额外说明:

参数与 shareTimeline API 基本一致(大客户端环境下不支持 success、fail 回调)

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 获取“新浪微博”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareWeiboApp

示例
hysdk.onMenuShareWeibo({
    title: '分享到新浪微博', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到新浪微博,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});

额外说明:

参数与 shareTimeline API一致(大客户端环境下不支持 success、fail 回调)

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 获取“腾讯微博”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareWeibo

示例
hysdk.onMenuShareWeibo({
    title: '分享到腾讯微博', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到腾讯微博,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});

额外说明:

参数与 shareTimeline API一致(大客户端环境下不支持 success、fail 回调)

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 获取“分享给QQ”按钮点击状态及自定义分享内容接口
对应wechat接口:onMenuShareQQ

示例
hysdk.onMenuShareQQ({
    title: '分享到QQ', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到QQ,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});

额外说明:

参数与 shareTimeline API一致

运行环境 是否支持
Hy X
Hy Browser X
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 获取“分享到QZone”按钮点击状态及自定义分享内容接口
对应wechat接口:onMenuShareQZone

示例
hysdk.onMenuShareQZone({
    title: '分享到QZone', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到QZone,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});

额外说明:

参数与 shareTimeline API一致

运行环境 是否支持
Hy X
Hy Browser (qunar) X
Hy Browser (非qunar) X
touch X
wechat
ctrip X

描述: 获取“短信”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareSMS

示例
hysdk.onMenuShareSMS({
    title: '分享到短信', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到短信,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});

额外说明:

参数与 shareTimeline API一致(大客户端环境下不支持 success、fail 回调)

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 获取“邮件”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareEmail

示例
hysdk.onMenuShareEmail({
    title: '分享到邮件', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到邮件,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});

额外说明:

参数与 shareTimeline API一致(大客户端环境下不支持 success、fail 回调)

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 获取“去哪儿好友”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareQunarIM

示例
hysdk.onMenuShareQunarIM({
    title: '分享到去哪儿好友', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到去哪儿好友描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});

额外说明:

参数与 shareTimeline API一致(大客户端环境下不支持 success、fail 回调)

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X

描述: 设置通用分享内容接口。自定义通用分享内容,并获取分享状态
对应native接口:onMenuShare

示例
hysdk.onMenuShare({
    title: '通用分享', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '通用分享,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});

额外说明:

参数与 shareTimeline API 基本一致(大客户端环境下不支持 success、fail 回调)

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch X
wechat X
ctrip X

Hy Browser: 默认获取网页标题和链接,可以设置通用分享内容,此时只支持设置通用分享内容,不支持对微博、微信分别设置分享内容

描述: 扫描二维码并返回结果
对应native接口:scanQRCode

示例
hysdk.scanQRCode({
    needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
    scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
    success: function (res) {
        var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})

额外说明:

参数 类型 描述 必选 注明
needResult Number 是否处理扫描结果 X 非常用参数,默认为0,扫描结果由微信处理,1则直接返回扫描结果
scanType Array 二维码类型 X 非常用参数,可以指定扫二维码还是一维码,默认二者都有
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch X
wechat
ctrip

描述: 打印log日志
使用场景:调试时,使用alert会阻断进程,可以使用log进行调试
对应native接口:debug.log

示例
hysdk.log( "message" );

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 为对接qav自动埋点
对应native接口:qav

示例
hysdk.qav({
    content: {"name": "jay"}, // 不可为空
    start: '###', // 不可为空
    end: '###', // 不可为空
    success: function(res) {},
    fail: function(err) {},
});

额外说明:

运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip

描述: 设置个性化推荐开关 对应native接口:commonConfig.setPersonalConfig

示例
hysdk.setPersonalConfig({
    openPersonalConfig: false  // 设置个性化开关状态,默认为开

});

额外说明:

运行环境 是否支持
Hy
Hy Browser
Hy Browser (非qunar)
touch X
wechat X
ctrip X

描述: 获取个性化推荐开关状态 对应native接口:commonConfig.getPersonalConfig

示例
hysdk.getPersonalConfig({
    success: function (res) {
        var serverMessage = res.responseData;
        alert( JSON.stringify(res) )
    },
});

额外说明:

运行环境 是否支持
Hy
Hy Browser
Hy Browser (非qunar)
touch X
wechat X
ctrip X

描述: 通过key获取开关配置 对应native接口:commonConfig.getConfigByKey

示例
hysdk.getConfigByKey({
    key: 'qrnjsConfig',
    success: function (res) {
        alert(JSON.stringify(res))
    }, 
    fail: function (err) {
        console.log(err);
    }
});

额外说明:

运行环境 是否支持
Hy
Hy Browser
Hy Browser (非qunar)
touch X
wechat X
ctrip X

描述: 调用 middlePay 获取支付
对应native接口:Pay.middlePay

示例

hysdk.Pay.middlePay(
    "qunariphonepro://trippay/fastpay?payToken=1017833572734742528",
    (data) => {
      console.log(data, "success");
      alert(JSON.stringify(data) + "success");
    },
    (data) => {
      console.log(data, "fail");
      alert(JSON.stringify(data) + "fail");
    }
);

额外说明:

参数 类型 描述 必选 注明
url String url 地址 常用参数
payResultCallback Function payResultCallback 回调 X 常用参数
failCallback Function failCallback 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar) X
touch X
wechat X
ctrip X