QunarAPI 最重要的方法

  • 功能描述:native 的桥注入之后的回调。
  • 使用场景:所有桥相关的接口 的调用都必须放在QunarAPI的回调里。(即:除了 QunarAPI.register
  • 功能描述:判断当前客户端版本是否支持指定JS接口
  • 使用场景:在不确定当前客户端对API支持情况下检测
  • HY不支持的验证方法:onShow、onHide、onReceiveData、onceReceiveData、onCloseWebView、onceCloseWebView、onNavClick
  • 对应native接口:checkJsApi
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HYLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 API: 1.0.6
wechat 微信客户端 API: 1.0.0 (回调函数的参数格式不匹配)
QunarAPI.checkJsApi({
    jsApiList: ['chooseImage'], // 需要检测的JS接口列表
    success: function(res) {
        // 以键值对的形式返回,可用的api值true,不可用为false
        // HY
        // res: {"chooseImage": true}
        // wechat
        // res:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
    }
});
  • 功能描述:通过register扩展接口
  • 使用场景:业务线有新的非公共HY插件,扩展到QunarAPI

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

运行环境 环境配置 支持版本
HY(iOS) HYView 所有版本
HY(Android) HY.hy + HY.browser 大客户端hy vid: 11+
hy Nexus vid: 1.1.5+
大客户端browser vid: 20+
touch 浏览器 支持
wechat 微信客户端 不支持

注:

native的桥有三种调用方式:

  • 如果name里有once,会用once的方式来调用native的桥(即监听并且只触发一次)。
  • 如果name里有on,则会用on的方式来调用native的桥(即监听)。
  • 默认会用invoke的方式来调用native的桥(即触发)。
  • on绑定的事件,可以通过off来解绑,具体可以看QunarAPI.off
QunarAPI.register(
    name,            //接口名称
    key,             //bridge名称
    namespace        //命名空间,业务方建议使用自己的命名空间
);

// trigger的方式,每次触发
QunarAPI.register('doSomething', 'doSomething', 'xxx');

// once的方式,触发一次
QunarAPI.register('onceDoSomething', 'onceDoSomething', 'xxx');

// on的方式,监听
QunarAPI.register('onChangeSomething', 'onChangeSomething', 'xxx');


// 注册
// QunarAPI.register('openWebView', 'webview.open', 'hy');
// 调用 
// QunarAPI.hy.openWebView({
//    success : function(){},
//    fail : function(){}
//  })
  • 功能描述:off掉通过on绑定的事件,即:将那些通过name里有on字段的接口绑定的事件解绑
  • 使用场景:在某些场景,需要解绑一些一些事件
  • 使用说明:
    • 此处解绑的事件,必须指定为绑定时的那个事件(调用QunarAPI.onXXX的时候,会返回该事件)
    • 解绑的必须是通过 QunarAPI.onXXX 绑定的事件
    • 接口的第一个参数是需要解绑的接口名称,并不需要带上命名空间(比如:QunarAPI.hy.onNavClick -> onNavClickQunarAPI.bnb.onXXX -> onXXX
var testEvent;

···

QunarAPI.ready(function(){
    testEvent = QunarAPI.onSomething({
        success: function(res){

        }
    });
});

···

QunarAPI.ready(function(){
    QunarAPI.off(onSomething, testEvent);
});
  • 功能描述:唤起登录状态或者登录框
  • 使用场景:登录
  • 对应native接口:login.start
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 不支持
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 支持
wechat 微信客户端 不支持
// 获取登录状态
QunarAPI.hy.login({
    shouldOpenLogin: false, // 获取登录状态
    success: function(res) {
        // 登录成功
    },
    fail: function(res){
        // 未登录返回的数据
        res = {
            "0": {
                "errcode": 1,
                "errmsg": "登录失败",
                "ret": false
            }
        }
    }
});
// 唤起登录界面
QunarAPI.hy.login({
    shouldOpenLogin: true, // 指示是否允许弹登录界面,不允许时未登录直接返回登录失败,true=允许, false=不允许
    success: function(res) {
        // 返回的数据
        res = 
        {
            "userAvatar": "http://img1.qunarzz.com",
            "userEmail": "",
            "userID": "123123",
            "userName": "",
            "userNickname": "gtts",
            "userUserID": "s_sdfsdfsdfsdf"
        }
    },
    fail: function(res){
        console.log('%s %s', res.code, res.errmsg);
    }
});
  • 微信分享的图片有大小限制,建议采用大小为100x100px以内的jpeg格式。
  • Android平台的分享到短信、分享到邮件不会生效,将会采用“通用分享”提供的数据。
  • 如果未调用分享接口,分享时将采用页面的标题和URL,在有图片的场合将会使用App本身的图标。
  • 调用通用分享将会覆盖其他渠道分享接口设置的内容,所以请先调用通用分享接口,再调用不同渠道的分享接口。
  • 功能描述:设置通用分享内容接口。自定义通用分享内容,并获取分享状态
  • 对应native接口:onMenuShare
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.onMenuShare({
    title: '通用分享', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '通用分享,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('分享完成')
    },
    fail: function () {
        alert('分享失败')
    }
});
  • 功能描述:唤起分享dialog
  • 对应native接口:doShare
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.showShareItems({
    success: function () {
        // 用户点击了分享dialog中的分享按钮
        // do something
    }
});
  • 功能描述:获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
  • 对应native接口:onMenuShareTimeline
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.onMenuShareTimeline({
    title: '分享到朋友圈', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到朋友圈,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('分享完成')
    },
    fail: function () {
        alert('分享失败')
    }
});
  • 功能描述:主动调起“分享到朋友圈”分享内容接口
  • 对应native接口:shareTimeline
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.shareTimeline({
    title: '分享到朋友圈', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到朋友圈,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('朋友圈分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('朋友圈分享失败')
    } // 用户取消分享后执行的回调函数
});
  • 功能描述:获取“分享给朋友”按钮点击状态及自定义分享内容接口
  • 对应native接口:onMenuShareAppMessage
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.onMenuShareAppMessage({
    title: '分享到微信朋友', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到微信朋友,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('分享完成')
    },
    fail: function () {
        alert('分享失败')
    }
});
  • 功能描述:主动调起“分享给朋友”分享内容接口
  • 对应native接口:sendAppMessage
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.shareAppMessage({
    title: '分享到微信朋友', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到微信朋友,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('微信朋友分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('微信朋友分享取消')
    } // 用户取消分享后执行的回调函数
});
  • 功能描述:获取“新浪微博”按钮点击状态及自定义分享内容接口
  • 对应native接口:onMenuShareWeiboApp
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.onMenuShareWeiboApp({
    title: '分享到新浪微博', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到新浪微博,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('分享完成')
    },
    fail: function () {
        alert('分享失败')
    }
});
  • 功能描述:主动调起“新浪微博”分享内容接口
  • 对应native接口:shareWeiboApp
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.shareWeiboApp({
    title: '分享到新浪微博', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到新浪微博,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('新浪微博分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('新浪微博分享取消')
    } // 用户取消分享后执行的回调函数
});
  • 功能描述:获取“短信”按钮点击状态及自定义分享内容接口
  • 对应native接口:onMenuShareSMS
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.onMenuShareSMS({
    title: '分享到短信', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到短信,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('分享完成')
    },
    fail: function () {
        alert('分享失败')
    }
});
  • 功能描述:主动调起“短信”分享内容接口
  • 对应native接口:shareSMS
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.shareSMS({
    title: '分享到短信', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到短信,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    success: function () {
        alert('短信分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('短信分享失败')
    } // 用户取消分享后执行的回调函数
});
  • 功能描述:获取“邮件”按钮点击状态及自定义分享内容接口
  • 对应native接口:onMenuShareEmail
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.onMenuShareEmail({
    title: '分享到邮件', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到邮件,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    // IOS,微信正常触发,Android暂时不触发
    success: function () {
        alert('分享完成')
    },
    fail: function () {
        alert('分享失败')
    }
});
  • 功能描述:主动调起“邮件”分享内容接口
  • 对应native接口:shareEmail
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.shareEmail({
    title: '分享到邮件', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到邮件,描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    // 以下方法无效果
    success: function () {
        alert('邮件分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('邮件分享失败')
    } // 用户取消分享后执行的回调函数
});
  • 功能描述:获取“去哪儿好友”按钮点击状态及自定义分享内容接口
  • 对应native接口:onMenuShareQunarIM
运行环境 环境配置 支持版本
HY(iOS) HYView 开发中~
HY(Android) HY.browser 开发中~
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.onMenuShareQunarIM({
    title: '分享到去哪儿好友', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到去哪儿好友描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    // iOS,微信正常触发,Android暂时不触发
    success: function () {
        alert('分享完成')
    },
    fail: function () {
        alert('分享失败')
    }
});
  • 功能描述:主动调起“去哪儿好友”分享内容接口
  • 对应native接口:shareQunarIM
运行环境 环境配置 支持版本
HY(iOS) HYView 开发中~
HY(Android) HY.browser 开发中~
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.shareQunarIM({
    title: '分享到去哪儿好友', // 标题
    link: 'http://hy.qunar.com/', // 链接URL
    desc: '分享到去哪儿好友描述', // 描述
    imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', // 分享图标
    // 以下方法无效果
    success: function () {
        alert('去哪儿好友分享完成')
    },// 用户确认分享后执行的回调函数
    fail: function () {
        alert('去哪儿好友分享失败')
    } // 用户取消分享后执行的回调函数
});
  • 版本需求:>= 1.2.0
  • 功能描述:注册监听后,就会监听页面的截屏事件。一旦用户进行了截屏操作,就会在屏幕右侧有个中间页提示分享。
  • 对应native接口:registerScreenshotShare
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011127
HY(Android) HY.browser 大客户端browser vid: 50+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.registerScreenshotShare({
    scheme: 'hotel/main',// 这里举例可以用’hotel/main’,业务线需要根据自己的需要传入页面的scheme
    // 以下方法无效果
    success: function (data) {
        alert(JSON.stringify(data));//监听成功后执行的回调
    },
    fail: function (err) {
        alert(JSON.stringify(err));//监听失败后执行的回调
    }
});
  • 版本需求:>= 1.2.0
  • 功能描述:当页面退出,或者不需要截屏监听的时候,就需要移除这个监听了。需要注意的是:只要注册了一个监听,就需要在使用监听完成后移除一个监听。
  • 对应native接口:unregisterScreenshotShare
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011127
HY(Android) HY.browser 大客户端browser vid: 50+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.unregisterScreenshotShare({

});
  • 版本需求:>= 1.2.0
  • 功能描述:用户主动截屏分享,当按下分享按钮,就会执行这个功能,弹出右侧的中间页提示分享。 用户主动截屏的话,不用注册监听。
  • 对应native接口:shareQunarIM
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011127
HY(Android) HY.browser 大客户端browser vid: 50+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.screenshotAndShare({
    scheme: 'hotel/main',
    // 以下方法无效果
    success: function (data) {
        alert(JSON.stringify(data));//截屏成功后执行的回调
    },
    fail: function (err) {
        alert(JSON.stringify(err));//截屏失败后执行的回调
    }
});
  • 功能描述:获取设备信息
  • 对应native接口:native.getDeviceInfo
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 1.3.0+
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.getDeviceInfo({
    hybridId:"flight_mall_service", //需要查询QP包版本的hybridId,
    success: function(res){
        // 返回的数据
        res = {
            pid: "";  // pid是标识这个是哪个包,比如,iOS、android,ios pro(iOS暂不支持,后面会提供)
            uid: "";  // uid是后端给每个设备分配的唯一标识符
            gid: "";  // gid是设备唯一标识符

            cid: "",
            mac: "",
            sid: "",
            vid: ""

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

请求字段说明 #

参数 类型 说明 iOS大客户端 iOS独立客户端 Android touch wechat
hybridId string 请求资源包的hybridId X X

返回字段说明 #



返回字段 类型 说明 iOS大客户端 iOS独立客户端 Android touch wechat
pid string pid是标识这个是哪个包
比如:iOS、android,iOS pro
X X
uid 设别唯一标识符
gid 后端给每个设备分配的唯一标识符 不返回
cid 渠道号
mac 客户端mac地址 √,iOS7+为:
02-00-00-00-00-00
sid 服务器端分配的ID 不返回
vid vid信息
qpVersion hybridId对应资源包的版本信息
versionName app版本号
  • 功能描述:获取网络状态
  • 对应native接口:network.getType
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.0.0
HY(Android) HY.hy + HY.browser 大客户端hy vid: 11+
hy Nexus vid: 1.1.5+
大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.getNetworkType({
    success: function(res){
        // 返回网络类型2g,3g,2g/3g,4g,wifi,unknown
        var networkType = res.networkType;
        alert('当前网络连接方式为:' + networkType)
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})
  • 功能描述:获取地理位置接口
  • 对应native接口:geolocation.getCurrentPosition
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 支持
wechat 微信客户端 支持
QunarAPI.getLocation({
    // type 参数支持wechat,hy未实现
    type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
    timeout: 5000,  // 非必填。当定位时间超出此限制时,调用失败回调。单位:ms
    maximumAge: 3000, // 非必填。可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
    success: function(res){
        // TODO: 与微信的结构不一致
        // 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))
    }
})
参数名 类型 必填 默认值 描述 支持版本
timeout Number 非必填 5000 当定位时间超出此限制时,调用失败回调。单位:ms iOS: 4.7.2 Android: 待定
maximumAge Number 非必填 3000 可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms iOS: 4.7.2 Android: 待定
  • 功能描述:使用经纬度打开本地地图
  • 对应native接口:openLocation
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 未上线
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.openLocation({
    // 微信特有属性
    name: 'ha', // 位置名
    address: 'hah', // 地址详情说明
    scale: 10, // 地图缩放级别,整形值,范围从1~28。默认为最大
    infoUrl: 'http://qunar.com', // 在查看位置界面底部显示的超链接,可点击跳转
    // 公用
    latitude: '39.983667', // 纬度,浮点数,范围为90 ~ -90
    longitude: '116.312638' // 经度,浮点数,范围为180 ~ -180。
})
  • 功能描述:扫描二维码并返回结果
  • 对应native接口:scanQRCode
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011090
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端完成,独立APP未上线
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.scanQRCode({
    needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
    scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
    success: function (res) {
        var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
    },
    fail: function(){
        alert(JSON.stringify(arguments))
    }
})
  • 功能描述:拍照或从手机相册中选图接口
  • 对应native接口:chooseImage
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid: 80011092+
独立客户端 HytiveLib: 1.1.0+
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.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
    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
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
  • 功能描述:上传图片接口 (不建议使用,推荐使用QunarAPI.uploadImage_v1
  • 对应native接口:uploadImage
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.uploadImage({
    localId: image.localIds[0], // 需要上传的单张图片的本地ID,由chooseImage接口获得
    isShowProgressTips: 1, // 默认为1,显示进度提示(未确认iOS及Android的支持情况)
    // 上传照片后,服务器端返回的json串格式如下:
    //  {
    //      ret : true or false,
    //      data : 任何值
    //  }
    // iOS根据ret判断是否调用success回调函数,仅当ret为true时调用success函数,否则调用fail函数
    // Android根据http请求的response状态码判断回调函数,状态码为200时调用success,否则调用fail
    // success函数的res.serverId参数为json串中的data值(iOS返回的是json类型,Android返回的是string类型)
    success: function (res) {
        var serverId = res.serverId; // 返回图片的服务器端ID
        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”)
    quality: "original" // 图像品质,说明如下
    // 可以使用预设值: original - 原图, high, middle, low - 按预设品质压缩
    // 也可以使用非上述值的自定义参数
    // 自定义参数时,采用等号键值对按逗号分隔: "maxSize=500K,maxWidth=800"
    // 可用key: maxSize, maxWidth, maxHeight, jpgLevel
    // 表示maxSize时可用K和M(不区分大小写)作为单位, jpgLevel为1-100之间的整数
    // 该项为空或空串时,相当于不添加任何自定义参数,即为无任何压缩限制,等同于original预设
});
  • 功能描述:上传图片接口
  • 对应native接口:uploadImage.v1
运行环境 环境配置 支持版本
HY(iOS) HYView 新大客户端vid >= 80011108
HY(Android) HY.browser 大客户端browser vid: 35+
touch 浏览器 不支持
wechat 微信客户端 马上会支持!
QunarAPI.uploadImage_v1({
    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 array 需要上传的图片的本地ID,由chooseImage接口获得 X X
serverAddress string 上传服务地址。必须是在qunar域下。
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 ?
  • 功能描述:预览图片接口
  • 对应native接口:previewImage
运行环境 环境配置 支持版本
HY(iOS) 不支持 不支持
HY(Android) HY.browser 未上线
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.previewImage({
    current: '', // 当前显示的图片链接
    urls: [] // 需要预览的图片链接列表
});
  • 功能描述:下载图片接口
  • 对应native接口:downloadImage
运行环境 环境配置 支持版本
HY(iOS) 不支持 不支持
HY(Android) HY.browser 未上线
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.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);
    }
});
  • 功能描述:打印log日志
  • 使用场景:调试时,使用alert会阻断进程,可以使用log进行调试
  • 对应native接口:debug.log
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 使用调试分支打包
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.log( "message" );
  • 功能描述:向后端发送数据
  • 对应native接口:hy.uelog
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.uelog({
    data: {}, // 向后端发送的数据
    success: function(res) {

    },
    fail: function(res){

    }
});
  • 功能描述:获取abTest的策略信息,用于
  • 对应native接口:abTest.getCase
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011117
HY(Android) HY.browser 大客户端browser vid: 40+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.abTest({
    data: {
        abId: param, //实验id
        simpleName: vcName//使用该策略信息的来源(e.g. : vc name or class name),用于记录Log.
    }, // 向后端发送的数据
    success: function(res) {
      //  res = {
      //      ab_type:ab_type , //策略类型
      //      ab_achieve:ab_achieve //策略信息
      //   }
    }
});

场景:A webView 打开 B webView

  • 父View: A webView
  • 子View: B webView
  • 功能描述:打开新的webView
  • 使用场景:搞SPA的话native导航栏没法跟h5实现同步的动画效果,故此处将定义导航栏的API加入新开webView的API中,由调用新webView者决定下一页的导航栏样式。
  • 对应native接口:webview.open
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011089
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.openWebView({
    url: 'http://address.of.target.url/',

    // 以下参数当位于大客户端时可用:
    // 指定view的名称,可以在新页面返回时跳回指定名称的页面
    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: 根据用户反馈的数据展示
    }
});

请求参数说明 #



参数 类型 说明 iOS Android touch wechat
url string webview的url地址 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时
  • 功能描述:关闭当前view
  • 使用场景:用户进行操作后,直接关闭view的接口。可传递数据
  • 对应native接口:webview.back
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011089
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.closeWebView({
    name: 'nameOfView'  // 非必填。不填回退到上级。如果位于大客户端内,可指定view名称,直接回退到该名称的view上
    // 非必须。view 通信,传递数据到指定view
    ,data: {

    }
});
  • 功能描述:设置当前view的属性
  • 使用场景:用户需要改变当前view的展示属性时
  • 对应native接口:webview.attribute
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.setWebViewAttr({
    // webView是否可以滚动
    scrollEnabled: true, //是否允许native滚动(Android无效)
    // iOS滑动出document区域,展示出的背景颜色
    backgroundColor: '#fff', Hytive 1.0 // webview的背景颜色(Android无效)
    name:'name' // Hytive 1.0
});
  • 功能描述:获取初始化数据
  • 使用场景:由父级view打开的view,获取父view传递的数据
  • 对应native接口:webview.getInitData
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.getInitData({
    success: function(data){
        // data格式由父view传递的数据决定
    },
    fail: function(){

    }
})
  • 功能描述:设置状态栏颜色
  • 使用场景:希望修改状态栏颜色,比如页面是黑色,希望设置状态栏颜色为白色
  • 对应native接口:qunarnative.status
运行环境 环境配置 支持版本
HY(iOS) HYView cook 新大客户端
HY(Android) HY.browser 暂未发布
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.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);
    }
})
  • 功能描述:设置webview是否支持ios的后退手势
  • 使用场景:需要单独开启或关闭ios的后退手势时
  • 对应native接口:qunarnative.gesturesView
运行环境 环境配置 支持版本
HY(iOS) HYWebVC 大客户端 vid >= 80011089
HY(Android) HY.browser 不支持
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.enableBackGesture({
    enable: true/false  // true为开启,false为禁止
});
  • 功能描述:隐藏load页面
  • 对应native接口:webview.hideLoadView
运行环境 环境配置 支持版本
HY(iOS) HYWebVC 大客户端 vid >= 80011102
独立客户端 HytiveLib 1.2.3+
HY(Android) HY.browser 大客户端browser vid: 29+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hideLoadView({})
  • 功能描述:入场动画结束时触发。
  • 使用场景:需要在入场动画结束时做相应处理时绑定该事件。作为子view,被打开后触发。作为父view,子view关闭,展示后被触发。
  • 对应native接口:webview.onShow
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011091
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.onShow({
    success: function(){
        // Do something
    }
});
  • 功能描述:出场动画结束时触发。
  • 使用场景:需要在出场动画结束时做相应处理时绑定该事件。作为父view,子view打开,隐藏后被触发。
  • 对应native接口:webview.onHide
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011091
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.onHide({
    success: function(){
        // Do something
    }
});
  • 功能描述:子view关闭后接收数据触发。
  • 使用场景:需要接收子view反馈数据时绑定该事件。作为父view,子view关闭后被触发。
  • 对应native接口:webview.onReceiveData
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.onReceiveData({
    success: function(){
        // Do something
    }
});
  • 功能描述:同onReceiveData,仅触发一次
  • 使用场景:同onReceiveData,仅触发一次
  • 对应native接口:webview.onReceiveData
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011092
独立客户端 HytiveLib 1.1.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.onceReceiveData({
    success: function(){
        // Do something
    }
});

不推荐使用

  • 功能描述:子view关闭后触发。
  • 使用场景:需要知道子view关闭情况时绑定该事件。作为父view,子view关闭后被触发。
  • 对应native接口:webview.targetClosed
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011089
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.onCloseWebView({
    success: function(){
        // Do something
    }
});

不推荐使用

  • 功能描述:同onCloseWebView,仅触发一次
  • 使用场景:同onCloseWebView,仅触发一次
  • 对应native接口:webview.targetClosed
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011089
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.onCloseWebView({
    success: function(){
        // Do something
    }
});
  • 功能描述:页面loading结束前触发
  • 使用场景:解决双loading问题。在loading将要结束时,会触发这个消息,此时显示的还是hy的loading动画页面。前端回调 callback( {data: true} ) 则阻止隐藏当前的loading动画页面,之后可以调用 QunarAPI.hideLoadView( ) 来隐藏loading动画页面。前端回调callback( {data: false} )则立即隐藏loadingy动画。如果前端没有回调的话,则默认在500ms后关闭loading动画页面。
  • 对应native接口:loadingview.close
运行环境 环境配置 支持版本
HY(iOS) HYView cook 新大客户端
HY(Android) HY.browser 大客户端browser vid: 32+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.onLoadingClose({
    success: function( data, callback){
        callback( {data: true} );
        //前端是否阻止隐藏loading动画页面,如果没有调用callback则500ms后关闭loading动画页面
        //{data: true}时loading动画页面会一直显示,隐藏由前端控制。在需要隐藏loading动画页面的时候调用函数 QunarAPI.hideLoadView(); 
        //{data: false}时loading动画页面立即隐藏
    }
});
  • 功能描述:改变当前view导航样式
  • 使用场景:当导航样式需要在用户交互发生改变的情况下调用
  • 对应native接口:navigation.refresh
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011089
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.navRefresh(
    // 与openWebview中的navigation字段相同,详情见附录。
    {
        title: {
            style: 'location',
            text: '北京'
        }
    }
)

请求参数说明 #


参数 类型 说明 iOS Android touch wechat
object navigation参数,见附录 X X
  • 功能描述:获取当前view导航状态,隐藏还是显示(仅仅在设置有导航栏的情况下有效)
  • 使用场景:需要获取当前view的导航栏的状态
  • 对应native接口:navigation.displayStatus
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011105
HY(Android) HY.browser 大客户端browser vid: 32
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.getNavDisplayStatus({

    success: function(res){
        var navStatus = res.status;//当前导航栏的状态
        //  导航栏状态可能的值为:
        //  "showed"    显示
        //  "hidden"    隐藏
        //  "showing"   显示动画中
        //  "hiding"    隐藏动画中
    },
    fail: function(res){
        console.log('%s %s', res.code, res.errmsg);
    }
})
  • 功能描述:设置当前view导航状态,隐藏或者显示(仅仅在设置有导航栏的情况下有效)
  • 使用场景:需要暂时隐藏导航栏或者把隐藏的导航栏显示出来的时候使用
  • 对应native接口:navigation.display
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011105
HY(Android) HY.browser 大客户端browser vid: 32
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.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
  • 功能描述:监听导航条的点击事件
  • 使用场景:需要在点击导航条时触发一定条件时调用
  • 对应native接口:navigation.click
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011089
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.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的方法。
QunarAPI.hy.onNavClick({
    success: function( data, callback){

        switch( data.button ) {
            case 'left':
                // 需要回调客户端,通过通知客户端数据为true告诉native事件已经处理,停止默认事件
                callback( {data: true} );
                // do something
                break;
            default: 
                // do something
        }
    }
});
  • 功能描述:关闭当前网页窗口接口
  • 对应native接口:webview.back
运行环境 环境配置 支持版本
HY(iOS) HYViewController 大客户端 vid >= 80011089
独立客户端 HytiveLib 1.0.0
HY(Android) HY.browser 大客户端browser vid: 20+
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.closeWindow({});
  • 功能描述:隐藏右上角菜单接口
  • 对应native接口:hideOptionMenu
运行环境 环境配置 支持版本
HY(iOS) HYWebVC 不支持
HY(Android) HY.browser 不支持
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.hideOptionMenu({});
  • 功能描述:显示右上角菜单接口
  • 对应native接口:showOptionMenu
运行环境 环境配置 支持版本
HY(iOS) HYWebVC 不支持
HY(Android) HY.browser 不支持
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.showOptionMenu({});
  • 功能描述:批量隐藏功能按钮接口
  • 对应native接口:hideMenuItems
运行环境 环境配置 支持版本
HY(iOS) HYWebVC 不支持
HY(Android) HY.browser 不支持
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.hideMenuItems({
    menuList: [] // 要隐藏的菜单项
})
  • 功能描述:批量显示功能按钮接口
  • 对应native接口:showMenuItems
运行环境 环境配置 支持版本
HY(iOS) HYWebVC 不支持
HY(Android) HY.browser 不支持
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.showMenuItems({
    menuList: [] // 要显示的菜单项
})
  • 功能描述:隐藏所有非基础按钮接口
  • 对应native接口:hideAllNonBaseMenuItem
运行环境 环境配置 支持版本
HY(iOS) HYWebVC 不支持
HY(Android) HY.browser 不支持
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.hideAllNonBaseMenuItem({});
  • 功能描述:显示所有功能按钮接口
  • 对应native接口:showAllNonBaseMenuItem
运行环境 环境配置 支持版本
HY(iOS) HYWebVC 不支持
HY(Android) HY.browser part
touch 浏览器 不支持
wechat 微信客户端 支持
QunarAPI.showAllNonBaseMenuItem({})
  • 功能描述:QunarAPI.hy.schemeForResult
  • 对应native接口:schemeForResult
运行环境 环境配置 支持版本
HY(iOS) HYView 大客户端 vid >= 80011118
HY(Android) HY.browser 大客户端browser vid: 41+
touch 浏览器 不支持
wechat 微信客户端 不支持
QunarAPI.hy.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))
    },
})