API 分类如下:

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

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

描述: 判断当前环境是否支持指定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"
运行环境 是否支持
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

描述: 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 运行环境是否是 hy,在 ready 后可获取
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 bool 是否是 qunar 大客户端
retina bool 是否是 retina 屏
scheme string / undefined scheme 协议,'qunariphone','qunaraphone'...
webApp bool 是否是 WebApp (在桌面上显示图标的 webapp)
winos bool 是否是 Windows Phone
youthCtripApp bool 是否是携程学生版客户端

额外说明:

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

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

示例
hysdk.getLocation({
    type: 'wgs84', // type 参数仅 wechat 支持,hy未实现 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
    timeout: 5000,  // 非必填。当定位时间超出此限制时,调用失败回调。单位:ms
    maximumAge: 3000, // 非必填。可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
    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 (未上线)
            }
        }
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})

额外说明:

参数 类型 描述 必选 注明
type String 坐标类型 X 非常用参数,仅微信支持,默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
timeout Number 超时设置 X 非常用参数,当定位时间超出此限制时,调用失败回调。单位:ms
maximumAge Number 缓存定位结果时间 X 非常用参数,可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
success Function success 回调 X 常用参数
fail Function fail 回调 X 常用参数
运行环境 是否支持
Hy
Hy Browser (qunar)
Hy Browser (非qunar)
touch √ (https)
wechat
ctrip

描述: 使用经纬度打开地图
对应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 = {
            pid: "";  // pid是标识这个是哪个包,比如,iOS、android,ios pro(iOS暂不支持,后面会提供)
            uid: "";  // uid是后端给每个设备分配的唯一标识符
            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

描述: 监听截屏事件,一定要配合 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获取(iOS未上线)
    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
type string navibar的类型
缺省值为navibar-normal
也可为navibar-transparent (透明的navibar)、navibar-none (没有navibar)
navigation object navigation参数
type为navibar-normal时
type为navibar-transparent时
注意: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的属性
使用场景:用户需要改变当前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.code, 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

描述: 打开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 string array 只有请求中设置了thumbnail参数才会返回
返回选定照片的本地缩略图ID列表
thumbnail可为img标签的src属性
新大客户端、独立客户端 HytiveLib: 1.3.0+ 大客户端browser vid: 29+ X X

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

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

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

示例
hysdk.uploadImage({
    localId: image.localIds[0], // 需要上传的单张图片的本地ID,由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",
    //服务地址必须是在qunar域下,支持https(仅CA证书),必填项!。随URL添加的参数直接拼好放在这里,需要通过post的参数见下
    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,由chooseImage接口获得,与 localIds 二选一,localId 上传一张图片 X X
localIds Array 需要上传的图片的本地ID,由chooseImage接口获得,与 localId 二选一,localIds 上传多张图片,前端控制的队列上传,多次调用桥(仅 hy 支持, hysdk 1.2.2 及以上版本支持)
serverAddress string 上传服务地址。必须是在qunar域下。当不指定协议时,会根据当前页面的协议自动补齐。
例如当前页面是 http 协议,serverAddress 值是 '//www.qunar.com',自动补齐为 'http://www.qunar.com',若指定则指定的优先级最高(自动补齐协议仅 Hy 支持,hysdk 1.2.4 及以上版本支持)
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)
运行环境 是否支持
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',

    //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

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

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

额外说明:

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

描述: 主动调起“分享到朋友圈”分享内容接口
对应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

描述: 主动调起“分享给朋友”分享内容接口
对应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

描述: 主动调起“新浪微博”分享内容接口
对应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

描述: 主动调起“短信”分享内容接口
对应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

描述: 主动调起“邮件”分享内容接口
对应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

描述: 主动调起“去哪儿好友”分享内容接口
对应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

描述: 注册监听后,就会监听页面的截屏事件。一旦用户进行了截屏操作,就会在屏幕右侧有个中间页提示分享
对应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

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

示例
hysdk.unregisterScreenshotShare();

额外说明:

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

描述: 用户主动截屏分享,当按下分享按钮,就会执行这个功能,弹出右侧的中间页提示分享。 用户主动截屏的话,不用注册监听。
对应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

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

示例
hysdk.onMenuShareTimeline({
    title: '分享到朋友圈', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到朋友圈,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    miniUserName: 'gh_7ffb9c5d76dd', // 微信小程序的 userName
    miniPath: 'home/pages/index?navigateTo=%2Fcommon%2Fpages%2Fsearch%2Findex%3FbizType%3Dtrain' // 微信小程序的路径
});

额外说明:

参数与 shareTimeline API 基本一致
iOS 额外支持 miniUserName、miniPath 参数(iOS:vid80011137+支持)

参数 类型 描述 必选 注明
miniUserName String 分享微信小程序的 userName,唯一标示小程序 X 仅 hy(iOS) 支持
miniPath String 分享微信小程序的路径 X 仅 hy(iOS) 支持
运行环境 是否支持
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', // 分享图标
    miniUserName: 'gh_7ffb9c5d76dd', // 微信小程序的 userName
    miniPath: 'home/pages/index?navigateTo=%2Fcommon%2Fpages%2Fsearch%2Findex%3FbizType%3Dtrain' // 微信小程序的路径
});

额外说明:

参数与 shareTimeline API 基本一致
iOS 额外支持 miniUserName、miniPath 参数(iOS:vid80011137+支持)

参数 类型 描述 必选 注明
miniUserName String 分享微信小程序的 userName,唯一标示小程序 X 仅 hy(iOS) 支持
miniPath String 分享微信小程序的路径 X 仅 hy(iOS) 支持
运行环境 是否支持
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一致

运行环境 是否支持
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一致

运行环境 是否支持
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一致

运行环境 是否支持
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一致

运行环境 是否支持
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一致

运行环境 是否支持
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', // 分享图标
    miniUserName: 'gh_7ffb9c5d76dd', // 微信小程序的 userName
    miniPath: 'home/pages/index?navigateTo=%2Fcommon%2Fpages%2Fsearch%2Findex%3FbizType%3Dtrain' // 微信小程序的路径
});

额外说明:

参数与 shareTimeline API 基本一致
iOS 额外支持 miniUserName、miniPath 参数(iOS:vid80011137+支持)

参数 类型 描述 必选 注明
miniUserName String 分享微信小程序的 userName,唯一标示小程序 X 仅 hy(iOS) 支持
miniPath String 分享微信小程序的路径 X 仅 hy(iOS) 支持
运行环境 是否支持
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