基础接口#
QunarAPI.ready#
QunarAPI
最重要的方法
- 功能描述:
native
的桥注入之后的回调。 - 使用场景:所有桥相关的接口 的调用都必须放在QunarAPI的回调里。(即:除了
QunarAPI.register
)
QunarAPI.checkJsApi#
- 功能描述:判断当前客户端版本是否支持指定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 |
微信客户端 | 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"}
}
});
QunarAPI.register#
- 功能描述:通过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 | 浏览器 | 支持 |
微信客户端 | 不支持 |
注:
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(){}
// })
QunarAPI.off#
- 功能描述:off掉通过on绑定的事件,即:将那些通过
name
里有on
字段的接口绑定的事件解绑 - 使用场景:在某些场景,需要解绑一些一些事件
- 使用说明:
- 此处解绑的事件,必须指定为绑定时的那个事件(调用
QunarAPI.onXXX
的时候,会返回该事件) - 解绑的必须是通过
QunarAPI.onXXX
绑定的事件 - 接口的第一个参数是需要解绑的接口名称,并不需要带上命名空间(比如:
QunarAPI.hy.onNavClick
->onNavClick
,QunarAPI.bnb.onXXX
->onXXX
)
- 此处解绑的事件,必须指定为绑定时的那个事件(调用
var testEvent;
···
QunarAPI.ready(function(){
testEvent = QunarAPI.onSomething({
success: function(res){
}
});
});
···
QunarAPI.ready(function(){
QunarAPI.off(onSomething, testEvent);
});
登录相关接口#
QunarAPI.hy.login#
- 功能描述:唤起登录状态或者登录框
- 使用场景:登录
- 对应native接口:
login.start
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 不支持 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 支持 |
微信客户端 | 不支持 |
// 获取登录状态
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本身的图标。
- 调用通用分享将会覆盖其他渠道分享接口设置的内容,所以请先调用通用分享接口,再调用不同渠道的分享接口。
QunarAPI.onMenuShare#
- 功能描述:设置通用分享内容接口。自定义通用分享内容,并获取分享状态
- 对应native接口:
onMenuShare
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
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('分享失败')
}
});
QunarAPI.hy.showShareItems#
- 功能描述:唤起分享dialog
- 对应native接口:
doShare
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 HytiveLib 1.0.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.showShareItems({
success: function () {
// 用户点击了分享dialog中的分享按钮
// do something
}
});
QunarAPI.onMenuShareTimeline#
- 功能描述:获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
- 对应native接口:
onMenuShareTimeline
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 HytiveLib 1.0.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
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('分享失败')
}
});
QunarAPI.hy.shareTimeline#
- 功能描述:主动调起“分享到朋友圈”分享内容接口
- 对应native接口:
shareTimeline
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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('朋友圈分享失败')
} // 用户取消分享后执行的回调函数
});
QunarAPI.onMenuShareAppMessage#
- 功能描述:获取“分享给朋友”按钮点击状态及自定义分享内容接口
- 对应native接口:
onMenuShareAppMessage
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 HytiveLib 1.0.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
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('分享失败')
}
});
QunarAPI.hy.shareAppMessage#
- 功能描述:主动调起“分享给朋友”分享内容接口
- 对应native接口:
sendAppMessage
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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('微信朋友分享取消')
} // 用户取消分享后执行的回调函数
});
QunarAPI.onMenuShareWeiboApp#
- 功能描述:获取“新浪微博”按钮点击状态及自定义分享内容接口
- 对应native接口:
onMenuShareWeiboApp
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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('分享失败')
}
});
QunarAPI.hy.shareWeiboApp#
- 功能描述:主动调起“新浪微博”分享内容接口
- 对应native接口:
shareWeiboApp
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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('新浪微博分享取消')
} // 用户取消分享后执行的回调函数
});
QunarAPI.onMenuShareSMS#
- 功能描述:获取“短信”按钮点击状态及自定义分享内容接口
- 对应native接口:
onMenuShareSMS
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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('分享失败')
}
});
QunarAPI.hy.shareSMS#
- 功能描述:主动调起“短信”分享内容接口
- 对应native接口:
shareSMS
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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('短信分享失败')
} // 用户取消分享后执行的回调函数
});
QunarAPI.onMenuShareEmail#
- 功能描述:获取“邮件”按钮点击状态及自定义分享内容接口
- 对应native接口:
onMenuShareEmail
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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('分享失败')
}
});
QunarAPI.hy.shareEmail#
- 功能描述:主动调起“邮件”分享内容接口
- 对应native接口:
shareEmail
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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('邮件分享失败')
} // 用户取消分享后执行的回调函数
});
QunarAPI.onMenuShareQunarIM#
- 功能描述:获取“去哪儿好友”按钮点击状态及自定义分享内容接口
- 对应native接口:
onMenuShareQunarIM
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 开发中~ |
HY(Android) | HY.browser | 开发中~ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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('分享失败')
}
});
QunarAPI.hy.shareQunarIM#
- 功能描述:主动调起“去哪儿好友”分享内容接口
- 对应native接口:
shareQunarIM
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 开发中~ |
HY(Android) | HY.browser | 开发中~ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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('去哪儿好友分享失败')
} // 用户取消分享后执行的回调函数
});
QunarAPI.hy.registerScreenshotShare#
- 版本需求:
>= 1.2.0
- 功能描述:注册监听后,就会监听页面的截屏事件。一旦用户进行了截屏操作,就会在屏幕右侧有个中间页提示分享。
- 对应native接口:
registerScreenshotShare
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011127 |
HY(Android) | HY.browser | 大客户端browser vid: 50+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.registerScreenshotShare({
scheme: 'hotel/main',// 这里举例可以用’hotel/main’,业务线需要根据自己的需要传入页面的scheme
// 以下方法无效果
success: function (data) {
alert(JSON.stringify(data));//监听成功后执行的回调
},
fail: function (err) {
alert(JSON.stringify(err));//监听失败后执行的回调
}
});
QunarAPI.hy.unregisterScreenshotShare#
- 版本需求:
>= 1.2.0
- 功能描述:当页面退出,或者不需要截屏监听的时候,就需要移除这个监听了。需要注意的是:只要注册了一个监听,就需要在使用监听完成后移除一个监听。
- 对应native接口:
unregisterScreenshotShare
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011127 |
HY(Android) | HY.browser | 大客户端browser vid: 50+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.unregisterScreenshotShare({
});
QunarAPI.hy.screenshotAndShare#
- 版本需求:
>= 1.2.0
- 功能描述:用户主动截屏分享,当按下分享按钮,就会执行这个功能,弹出右侧的中间页提示分享。 用户主动截屏的话,不用注册监听。
- 对应native接口:
shareQunarIM
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011127 |
HY(Android) | HY.browser | 大客户端browser vid: 50+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.screenshotAndShare({
scheme: 'hotel/main',
// 以下方法无效果
success: function (data) {
alert(JSON.stringify(data));//截屏成功后执行的回调
},
fail: function (err) {
alert(JSON.stringify(err));//截屏失败后执行的回调
}
});
设备接口#
QunarAPI.hy.getDeviceInfo#
- 功能描述:获取设备信息
- 对应native接口:
native.getDeviceInfo
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 1.3.0+ |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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 | |
---|---|---|---|---|---|---|---|
hybridId | string | 请求资源包的hybridId | √ | √ | √ | X | X |
返回字段说明 #
返回字段 | 类型 | 说明 | iOS大客户端 | iOS独立客户端 | Android | touch | |
---|---|---|---|---|---|---|---|
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版本号 | √ |
QunarAPI.getNetworkType#
- 功能描述:获取网络状态
- 对应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 | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.getNetworkType({
success: function(res){
// 返回网络类型2g,3g,2g/3g,4g,wifi,unknown
var networkType = res.networkType;
alert('当前网络连接方式为:' + networkType)
},
fail: function(){
alert(JSON.stringify(arguments))
}
})
QunarAPI.getLocation#
- 功能描述:获取地理位置接口
- 对应native接口:
geolocation.getCurrentPosition
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 HytiveLib 1.0.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 支持 |
微信客户端 | 支持 |
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: 待定 |
QunarAPI.openLocation#
- 功能描述:使用经纬度打开本地地图
- 对应native接口:
openLocation
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 未上线 |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.openLocation({
// 微信特有属性
name: 'ha', // 位置名
address: 'hah', // 地址详情说明
scale: 10, // 地图缩放级别,整形值,范围从1~28。默认为最大
infoUrl: 'http://qunar.com', // 在查看位置界面底部显示的超链接,可点击跳转
// 公用
latitude: '39.983667', // 纬度,浮点数,范围为90 ~ -90
longitude: '116.312638' // 经度,浮点数,范围为180 ~ -180。
})
扫一扫接口#
QunarAPI.scanQRCode#
- 功能描述:扫描二维码并返回结果
- 对应native接口:
scanQRCode
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011090 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端完成,独立APP未上线 |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.scanQRCode({
needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
},
fail: function(){
alert(JSON.stringify(arguments))
}
})
图像接口#
QunarAPI.chooseImage#
- 功能描述:拍照或从手机相册中选图接口
- 对应native接口:
chooseImage
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid: 80011092+ 独立客户端 HytiveLib: 1.1.0+ |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
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 | ||
---|---|---|---|---|---|---|---|
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 | |
---|---|---|---|---|---|---|
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#
- 功能描述:上传图片接口 (不建议使用,推荐使用QunarAPI.uploadImage_v1)
- 对应native接口:
uploadImage
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
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预设
});
QunarAPI.uploadImage_v1#
- 功能描述:上传图片接口
- 对应native接口:
uploadImage.v1
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 新大客户端vid >= 80011108 |
HY(Android) | HY.browser | 大客户端browser vid: 35+ |
touch | 浏览器 | 不支持 |
微信客户端 | 马上会支持! |
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 | |
---|---|---|---|---|---|---|
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 | |
---|---|---|---|---|---|---|
responseData | string | 服务器返回的数据 | √ | √ | X | ? |
QunarAPI.previewImage#
- 功能描述:预览图片接口
- 对应native接口:
previewImage
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | 不支持 | 不支持 |
HY(Android) | HY.browser | 未上线 |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.previewImage({
current: '', // 当前显示的图片链接
urls: [] // 需要预览的图片链接列表
});
QunarAPI.downloadImage#
- 功能描述:下载图片接口
- 对应native接口:
downloadImage
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | 不支持 | 不支持 |
HY(Android) | HY.browser | 未上线 |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
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);
}
});
日志接口#
QunarAPI.hy.log#
- 功能描述:打印log日志
- 使用场景:调试时,使用alert会阻断进程,可以使用log进行调试
- 对应native接口:
debug.log
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 使用调试分支打包 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.log( "message" );
QunarAPI.hy.uelog#
- 功能描述:向后端发送数据
- 对应native接口:
hy.uelog
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.uelog({
data: {}, // 向后端发送的数据
success: function(res) {
},
fail: function(res){
}
});
QunarAPI.abTest#
- 功能描述:获取abTest的策略信息,用于
- 对应native接口:
abTest.getCase
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011117 |
HY(Android) | HY.browser | 大客户端browser vid: 40+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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 //策略信息
// }
}
});
WebView接口#
接口调用注意事项#
场景:A webView 打开 B webView
- 父View: A webView
- 子View: B webView
QunarAPI.hy.openWebView#
- 功能描述:打开新的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 | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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 | |
---|---|---|---|---|---|---|
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时 |
QunarAPI.hy.closeWebView#
- 功能描述:关闭当前view
- 使用场景:用户进行操作后,直接关闭view的接口。可传递数据
- 对应native接口:
webview.back
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011089 独立客户端 HytiveLib 1.0.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.closeWebView({
name: 'nameOfView' // 非必填。不填回退到上级。如果位于大客户端内,可指定view名称,直接回退到该名称的view上
// 非必须。view 通信,传递数据到指定view
,data: {
}
});
QunarAPI.hy.setWebViewAttr#
- 功能描述:设置当前view的属性
- 使用场景:用户需要改变当前view的展示属性时
- 对应native接口:
webview.attribute
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.setWebViewAttr({
// webView是否可以滚动
scrollEnabled: true, //是否允许native滚动(Android无效)
// iOS滑动出document区域,展示出的背景颜色
backgroundColor: '#fff', Hytive 1.0 // webview的背景颜色(Android无效)
name:'name' // Hytive 1.0
});
QunarAPI.hy.getInitData#
- 功能描述:获取初始化数据
- 使用场景:由父级view打开的view,获取父view传递的数据
- 对应native接口:
webview.getInitData
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.getInitData({
success: function(data){
// data格式由父view传递的数据决定
},
fail: function(){
}
})
QunarAPI.hy.setStatus#
- 功能描述:设置状态栏颜色
- 使用场景:希望修改状态栏颜色,比如页面是黑色,希望设置状态栏颜色为白色
- 对应native接口:
qunarnative.status
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | cook 新大客户端 |
HY(Android) | HY.browser | 暂未发布 |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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);
}
})
QunarAPI.hy.enableBackGesture#
- 功能描述:设置webview是否支持ios的后退手势
- 使用场景:需要单独开启或关闭ios的后退手势时
- 对应native接口:
qunarnative.gesturesView
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYWebVC | 大客户端 vid >= 80011089 |
HY(Android) | HY.browser | 不支持 |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.enableBackGesture({
enable: true/false // true为开启,false为禁止
});
QunarAPI.hideLoadView#
- 功能描述:隐藏load页面
- 对应native接口:
webview.hideLoadView
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYWebVC | 大客户端 vid >= 80011102 独立客户端 HytiveLib 1.2.3+ |
HY(Android) | HY.browser | 大客户端browser vid: 29+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hideLoadView({})
WebView事件#
QunarAPI.hy.onShow#
- 功能描述:入场动画结束时触发。
- 使用场景:需要在入场动画结束时做相应处理时绑定该事件。作为子view,被打开后触发。作为父view,子view关闭,展示后被触发。
- 对应native接口:
webview.onShow
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011091 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.onShow({
success: function(){
// Do something
}
});
QunarAPI.hy.onHide#
- 功能描述:出场动画结束时触发。
- 使用场景:需要在出场动画结束时做相应处理时绑定该事件。作为父view,子view打开,隐藏后被触发。
- 对应native接口:
webview.onHide
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011091 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.onHide({
success: function(){
// Do something
}
});
QunarAPI.hy.onReceiveData#
- 功能描述:子view关闭后接收数据触发。
- 使用场景:需要接收子view反馈数据时绑定该事件。作为父view,子view关闭后被触发。
- 对应native接口:
webview.onReceiveData
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.onReceiveData({
success: function(){
// Do something
}
});
QunarAPI.hy.onceReceiveData#
- 功能描述:同onReceiveData,仅触发一次
- 使用场景:同onReceiveData,仅触发一次
- 对应native接口:
webview.onReceiveData
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011092 独立客户端 HytiveLib 1.1.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.onceReceiveData({
success: function(){
// Do something
}
});
QunarAPI.hy.onCloseWebView#
不推荐使用
- 功能描述:子view关闭后触发。
- 使用场景:需要知道子view关闭情况时绑定该事件。作为父view,子view关闭后被触发。
- 对应native接口:
webview.targetClosed
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011089 独立客户端 HytiveLib 1.0.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.onCloseWebView({
success: function(){
// Do something
}
});
QunarAPI.hy.onceCloseWebView#
不推荐使用
- 功能描述:同onCloseWebView,仅触发一次
- 使用场景:同onCloseWebView,仅触发一次
- 对应native接口:
webview.targetClosed
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011089 独立客户端 HytiveLib 1.0.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.onCloseWebView({
success: function(){
// Do something
}
});
QunarAPI.onLoadingClose#
- 功能描述:页面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 | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.onLoadingClose({
success: function( data, callback){
callback( {data: true} );
//前端是否阻止隐藏loading动画页面,如果没有调用callback则500ms后关闭loading动画页面
//{data: true}时loading动画页面会一直显示,隐藏由前端控制。在需要隐藏loading动画页面的时候调用函数 QunarAPI.hideLoadView();
//{data: false}时loading动画页面立即隐藏
}
});
导航接口#
QunarAPI.hy.navRefresh#
- 功能描述:改变当前view导航样式
- 使用场景:当导航样式需要在用户交互发生改变的情况下调用
- 对应native接口:
navigation.refresh
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011089 独立客户端 HytiveLib 1.0.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
QunarAPI.hy.navRefresh(
// 与openWebview中的navigation字段相同,详情见附录。
{
title: {
style: 'location',
text: '北京'
}
}
)
请求参数说明 #
参数 | 类型 | 说明 | iOS | Android | touch | |
---|---|---|---|---|---|---|
object | navigation参数,见附录 | √ | √ | X | X |
QunarAPI.hy.getNavDisplayStatus#
- 功能描述:获取当前view导航状态,隐藏还是显示(仅仅在设置有导航栏的情况下有效)
- 使用场景:需要获取当前view的导航栏的状态
- 对应native接口:
navigation.displayStatus
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011105 |
HY(Android) | HY.browser | 大客户端browser vid: 32 |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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);
}
})
QunarAPI.hy.setNavDisplayStatus#
- 功能描述:设置当前view导航状态,隐藏或者显示(仅仅在设置有导航栏的情况下有效)
- 使用场景:需要暂时隐藏导航栏或者把隐藏的导航栏显示出来的时候使用
- 对应native接口:
navigation.display
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011105 |
HY(Android) | HY.browser | 大客户端browser vid: 32 |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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 | |
---|---|---|---|---|---|---|
action | string | 要设置的状态 | √ | √ | X | X |
animate | string | 使用的动画,暂时支持"none"(无动画)和"movetop"(移动动画)。可选,默认为"none"。 | ||||
time | number | 动画持续时间,单位为秒。可选,默认为0.4 | ||||
hideStatusBar | BOOL | 当action为"hide"时是否隐藏状态栏。 为true时,状态栏也会被隐藏。可选,默认为false |
√ | X | X | X |
导航事件#
QunarAPI.hy.onNavClick#
- 功能描述:监听导航条的点击事件
- 使用场景:需要在点击导航条时触发一定条件时调用
- 对应native接口:
navigation.click
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011089 独立客户端 HytiveLib 1.0.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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
}
}
});
界面操作接口#
QunarAPI.closeWindow#
- 功能描述:关闭当前网页窗口接口
- 对应native接口:
webview.back
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYViewController | 大客户端 vid >= 80011089 独立客户端 HytiveLib 1.0.0 |
HY(Android) | HY.browser | 大客户端browser vid: 20+ |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.closeWindow({});
QunarAPI.hideOptionMenu#
- 功能描述:隐藏右上角菜单接口
- 对应native接口:
hideOptionMenu
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYWebVC | 不支持 |
HY(Android) | HY.browser | 不支持 |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.hideOptionMenu({});
QunarAPI.showOptionMenu#
- 功能描述:显示右上角菜单接口
- 对应native接口:
showOptionMenu
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYWebVC | 不支持 |
HY(Android) | HY.browser | 不支持 |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.showOptionMenu({});
QunarAPI.hideMenuItems#
- 功能描述:批量隐藏功能按钮接口
- 对应native接口:
hideMenuItems
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYWebVC | 不支持 |
HY(Android) | HY.browser | 不支持 |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.hideMenuItems({
menuList: [] // 要隐藏的菜单项
})
QunarAPI.showMenuItems#
- 功能描述:批量显示功能按钮接口
- 对应native接口:
showMenuItems
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYWebVC | 不支持 |
HY(Android) | HY.browser | 不支持 |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.showMenuItems({
menuList: [] // 要显示的菜单项
})
QunarAPI.hideAllNonBaseMenuItem#
- 功能描述:隐藏所有非基础按钮接口
- 对应native接口:
hideAllNonBaseMenuItem
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYWebVC | 不支持 |
HY(Android) | HY.browser | 不支持 |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.hideAllNonBaseMenuItem({});
QunarAPI.showAllNonBaseMenuItem #
- 功能描述:显示所有功能按钮接口
- 对应native接口:
showAllNonBaseMenuItem
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYWebVC | 不支持 |
HY(Android) | HY.browser | part |
touch | 浏览器 | 不支持 |
微信客户端 | 支持 |
QunarAPI.showAllNonBaseMenuItem({})
数据通讯#
QunarAPI.hy.schemeForResult#
- 功能描述:QunarAPI.hy.schemeForResult
- 对应native接口:
schemeForResult
运行环境 | 环境配置 | 支持版本 |
---|---|---|
HY(iOS) | HYView | 大客户端 vid >= 80011118 |
HY(Android) | HY.browser | 大客户端browser vid: 41+ |
touch | 浏览器 | 不支持 |
微信客户端 | 不支持 |
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))
},
})