API 分类如下:
Base (基础) | Device (设备) | WebView (浏览器) | WebView Event (浏览器事件) |
---|---|---|---|
Navigation (导航) | Navigation Event (导航事件) | Window (窗口) | Image (图片) |
Schema | Share (分享) | Scan (扫描) | Log (日志) |
common Config |
说明: 对 ctrip API 支持情况如下文档所示,具体使用请参考 插件Fusion 和 携程 Hybrid 桥文档
重要更新: Hysdk:1.3.45, 安卓:60001558, iOS:80011306 版本开始, 部分接口将支持同步调用
. 传入参数USE_SYNC
为true
时, 将会同步返回结果.(注: 同步调用会阻塞 JS 线程, 请谨慎使用)
- 当前支持同步调用的接口:
getDeviceInfo
,app.getAppInfo
,getLocation
,getNetworkType
,app.getNetworkType
,getRiskControlInfo
,requestCacheLocation
,signature
Base API #
hysdk.checkJsApi( ) Method #
描述:
判断当前环境是否支持指定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 √ √ ctrip √
hysdk.config( ) Method #
描述:
配置 HySDK
hysdk 最重要的两个方法之一
对hysdk进行配置,包括是否开启调试,是否支持微信端和微信公众号的签名服务等
使用场景:在调用hysdk的一切接口前都要先调用一次config方法进行配置、初始化。
// 常用
hysdk.config({
debug: true,
wechatSupport: true
});
// 所有配置项
hysdk.config({
"debug": false, /* 调试开关 */
"bridgeReadyEvent": "WebViewJavascriptBridgeReady", /* Hytive 桥 Ready 事件 */
"bridgeReadyTimeout": 600, /* 桥 Ready 最大延迟 */
"apiTimeout": 1000, /* API 超时时间 */
"hytiveReg": "(^|\\s)(qunar[^\\/]+)\\/([\\d\\.]+)", /* Hytive UA 判断正则 */
"wechatSupport": false, /* 是否支持微信 */ /* qunar/fusion 版本默认为 true,使用去哪儿网公共号 */
"wechatScriptUrl": "//res.wx.qq.com/open/js/jweixin-1.0.0.js", /* 微信 JSSDK 地址 */
"wechatSignatureUrl": "//ccweixin.qunar.com/chat/getJsConfig.do", /* 微信签名服务地址 */ /* qunar/fusion 版本默认配置 */
"ucAPIScriptUrl": "//common.qunarzz.com/buri/prd/scripts/api/api@e5cd651c72c25357f174a1d5b99614d0.js" /* ucAPI 脚本地址 */ /* qunar/fusion 版本默认配置 */
});
额外说明:
参数 类型 描述 必选 注明 debug Bool 是否支持调试模式 X 常用参数,默认false bridgeReadyEvent String Hytive 桥 Ready 事件 X 不常用参数,默认 "WebViewJavascriptBridgeReady" bridgeReadyTimeout Number 桥 Ready 最大延迟 X 不常用参数,默认 600 apiTimeout Number API 超时时间 X 不常用参数,默认 1000 hytiveReg String Hytive UA 判断正则 X 不常用参数,hysdk 默认 "",qunar/fusion 插件默认 "(^|\s)(qunar[^\/]+)\/([\d\.]+)" wechatSupport Bool 是否支持微信 X 常用参数,hysdk 默认 false;qunar/fusion 插件默认为 true wechatScriptUrl String 微信 JSSDK 地址 X 不常用参数,默认 "//res.wx.qq.com/open/js/jweixin-1.0.0.js" wechatSignatureUrl String 微信签名服务地址 X 不常用参数,hysdk 默认空,qunar/fusion 插件默认 "//ccweixin.qunar.com/chat/getJsConfig.do" ucAPIScriptUrl String ucAPI 脚本地址 X 不常用参数,hysdk 不支持,qunar/fusion 插件默认 "//common.qunarzz.com/ucapi/prd/scripts/1.0.3/api@d20c312aba29a7178996dd57abcca695.js" openTagList Array 需要使用的开放标签列表,例如['wx-open-launch-app'] X 无默认
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) √ touch √ √ ctrip √
hysdk.ready( ) Method #
描述:
HySDK 初始化完成回调
hysdk 最重要的两个方法之一
Hy或微信的桥注入之后的回调
hysdk.ready(function (env) {
// env: hysdk当前运行环境,h5,hy或wechat
hysdk.checkJsApi({
//
});
...
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) √ touch √ √ ctrip √
hysdk.register( ) Method #
描述:
通过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 X ctrip X
hysdk.registerScheme( ) Method #
描述:
通过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 X ctrip X
hysdk.systemInfo Property #
描述:
获取系统信息
同步获取系统信息 (1.3.6 以上版本提供)
类型:
额外说明:
数据内容 返回值类型 String
{ notchInfo: { notch: true, // 是挖孔屏 notchSize: { height: 20, // 挖孔屏高度 width: 100 // 挖孔屏宽度 } }, immersiveInfo: { immersive: true, // 是否是沉浸式屏幕 immersiveOffset: 20, // 沉浸式屏幕高度 safeAreaBottomHeight: 34 // 底部安全区域高度(iOS vid: 80011295 开始支持) } } { notchInfo: { notch: false, // 不是挖孔屏 notchSize: { height: 0, width: 0 } }, immersiveInfo: { immersive: false, // 是否是沉浸式屏幕 immersiveOffset: 0, // 沉浸式屏幕高度 safeAreaBottomHeight: 34 // 底部安全区域高度(iOS vid: 80011295 开始支持) } }
之后会拓展其他内容
支持版本:iOS 80011158,android hy 64 (2018年6月版)。对于不支持的版本,systemInfo 值为 null。
hysdk.systemInfoObj Property #
描述:
获取系统信息
同步获取系统信息 (逻辑同systemInfo,安卓环境下,返回数据由字符串转为json) (1.3.10 以上版本提供)
类型:
额外说明:
数据内容 返回值类型 Object
{ notchInfo: { notch: true, // 是挖孔屏 notchSize: { height: 20, // 挖孔屏高度 width: 100 // 挖孔屏宽度 } }, immersiveInfo: { immersive: true, // 是否是沉浸式屏幕 immersiveOffset: 20, // 沉浸式屏幕高度 safeAreaBottomHeight: 34 // 底部安全区域高度(iOS vid: 80011295 开始支持) } } { notchInfo: { notch: false, // 不是挖孔屏 notchSize: { height: 0, width: 0 } }, immersiveInfo: { immersive: false, // 是否是沉浸式屏幕 immersiveOffset: 0, // 沉浸式屏幕高度 safeAreaBottomHeight: 34 // 底部安全区域高度(iOS vid: 80011295 开始支持) } }
之后会拓展其他内容
支持版本:iOS 80011158,android hy 64 (2018年6月版)。对于不支持的版本,systemInfoObj 值为 null。
hysdk.sniff Property #
描述:
sniff
使用场景:查看运行环境,设备,系统等信息
类型:
字段
类型
说明
android
bool
是否是 android 系统
appVersion
string / undefined
vid
browsers
alipay
string / bool
是否是支付宝,为版本号或 false
opera
string / bool
是否是 Opera 浏览器,为版本号或 false
qq
string / bool
当是使用 qq,微信或 qq 浏览器打开时,为版本号,否则为 false
uc
string / bool
是否是 UC 浏览器,为版本号或 false
wechat
string / bool
是否是微信,为版本号或 false
weibo
string / bool
是否是微博,为版本号或 false
ctripApp
bool
是否是携程客户端
ctripUseBase64
bool
是否是使用 base64 编码的 携程客户端
hy
bool / undefined
根据 UA 判断取得,1.x 版本不建议用该字段判断是否是 Hy 环境(iOS 只能判断在大客户端内,也可能是客户端内的普通 webview),目前可通过 hysdk.ready(function(env) {}) 中的 env 来做运行环境判断
imobile
bool / undefined
是否是 iphone / ipod
info
object
useragent 详细信息
ios
bool
是否是 iOS 系统
ipad
bool
是否是 ipad
iphone
bool
是否是 iphone
iphoneX
bool
是否是 iphoneX
ipod
bool
是否是 ipod
os
string / undefined
设备系统,为 ios 或 android,pc 端为 undefined
osVersion
string / undefined
系统详细版本号,pc 端为 undefined
osVersionN
number / undefined
系统数字化,pc 端为 undefined
pc
bool
是否是 pc 端
pixelRatio
number
像素比
qunar (qunar插件支持该参数)
bool
是否是 qunar 大客户端
retina
bool
是否是 retina 屏
scheme
string / undefined
scheme 协议,'qunariphone','qunaraphone'...(需要引入 qunar 插件)
webApp
bool
是否是 WebApp (在桌面上显示图标的 webapp)
winos
bool
是否是 Windows Phone
youthCtripApp
bool
是否是携程学生版客户端
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) √ touch √ √ ctrip √
Device API #
hysdk.getCurrentPosition( ) Method #
描述:
获取地理位置接口
对应native接口:geolocation.getCurrentPosition
hysdk.getCurrentPosition({
type: 'wgs84', // type 参数仅 wechat 支持,hy未实现 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
timeout: 5000, // 非必填。当定位时间超出此限制时,调用失败回调。单位:ms
maximumAge: 3000, // 非必填。可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
permissionCheckType: 0, // 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
success: function(res) {
// res 结构
res = {
type: 'baidu', // gps , baidu
coords: {
latitude: 1, // 纬度,浮点数,范围为90 ~ -90
longitude: 1, // 经度,浮点数,范围为180 ~ -180。
accuracy: 1, // 位置精度
timestamp: '111111', // 格式不统一
type: '', // GPS, baidu (未上线)
coordinateType: "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
},
};
},
fail: function() {
alert(JSON.stringify(arguments));
},
});
额外说明:
参数 类型 描述 必选 注明 type String 坐标类型 X 非常用参数,仅微信支持,默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' permissionCheckType Number 权限申请方式 X 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调 timeout Number 超时设置 X 非常用参数,当定位时间超出此限制时,调用失败回调。单位:ms maximumAge Number 缓存定位结果时间 X 非常用参数,可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms showNoPermsTips boolean 是否弹出"请您开启定位权限 仅安卓且vid: 60001462 支持 X 用户拒绝后,是否弹出"请您开启定位权限,否则无法使用定位功能"Toast提醒, 默认是true success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) √ touch √ (https) √ ctrip √
hysdk.getLocationV2( ) Method #
描述:
获取地理位置接口
对应native接口:geolocation.newGetCurrentPosition
hysdk.getLocationV2({
forceLocation: true, // 是否允许强制定位
timeout: 5000, // 非必填。当定位时间超出此限制时,调用失败回调。单位:ms
maximumAge: 3000, // 非必填。可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
permissionCheckType: 0, // 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
success: function(res){
// res 结构
res = {
"type": "baidu", // gps , baidu
"coords": {
"latitude": 1, // 纬度,浮点数,范围为90 ~ -90
"longitude": 1, // 经度,浮点数,范围为180 ~ -180。
"accuracy": 1, // 位置精度
"timestamp": "111111", // 格式不统一
"type": '', // GPS, baidu (未上线)
"coordinateType": "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
}
}
},
fail: function(){
alert(JSON.stringify(arguments))
}
})
额外说明:
参数 类型 描述 必选 注明 permissionCheckType Number 权限申请方式 X 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调 timeout Number 超时设置 X 非常用参数,当定位时间超出此限制时,调用失败回调。单位:ms maximumAge Number 缓存定位结果时间 X 非常用参数,可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms showNoPermsTips boolean 是否弹出"请您开启定位权限 仅安卓且vid: 60001462 支持 X 用户拒绝后,是否弹出"请您开启定位权限,否则无法使用定位功能"Toast提醒, 默认是true forceLocation boolean 是否允许强制定位 success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) x touch x x ctrip x
hysdk.requestCacheLocation( ) Method #
描述:
通过缓存获取地理位置接口
对应native接口:geolocation.newGetCacheLocation
hysdk.newRequestCacheLocation({
success: function(res) {
// res 结构
res = {
type: 'baidu', // gps , baidu
coords: {
latitude: 1, // 纬度,浮点数,范围为90 ~ -90
longitude: 1, // 经度,浮点数,范围为180 ~ -180。
accuracy: 1, // 位置精度
timestamp: '111111', // 格式不统一
type: '', // GPS, baidu (未上线)
coordinateType: "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
},
};
},
fail: function() {
alert(JSON.stringify(arguments));
},
});
额外说明:
参数 类型 描述 必选 注明 success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) x touch x x ctrip x
hysdk.openLocation( ) Method #
描述:
使用经纬度打开地图
对应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 √ ctrip √
hysdk.getDeviceInfo( ) Method #
描述:
获取设备信息
对应native接口:native.getDeviceInfo
hysdk.getDeviceInfo({
hybridId: "flight_mall_service", //hybridId,大客户端不用,可不填
success: function(res){
// 返回的数据
res = {
// http://wiki.corp.qunar.com/confluence/pages/viewpage.action?pageId=43255987
pid: ""; // pid是标识这个是哪个包,比如,iOS、android,ios pro(iOS暂不支持,后面会提供)
uid: ""; // uid设备唯一号,如android为手机串号,iphone为mac地址 ,ios7以后为iid
gid: ""; // gid 服务器为每个设备下发的唯一编号
cid: "",
mac: "", // 机器 MAC 地址,iOS7后值始终为 02:00:00:00:00:00
sid: "",
vid: "",
uuid: "", // 用户 id,更多信息请看下方 “额外说明” 部分
model: "", // model是苹果设备或苹果模拟器特有的字段,表示该设备或模拟器型号,如“iPhone9,1”、“iPad5,2”等
versioninfo:"" ;// 组件版本信息,仅android大客户端browser vid: 26+ 支持!
}
},
fail: function(){
alert(JSON.stringify(arguments))
}
})
额外说明:
参数 类型 描述 必选 注明 hybridId String hybridId X 大客户端不用,可不填 success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip √ uuid:该字段 Android 一直支持通过该 API 获取,iOS 从 4.10.19(vid:80011143)版本开始支持,之前版本请参考 wiki自行兼容 苹果设备 model 映射关系请参考附录
hysdk.getNetworkType( ) Method #
描述:
获取网络状态
对应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 √ ctrip √
hysdk.registerScreenshot( ) Method #
描述:
注册截屏监听,一定要配合 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 X ctrip X
hysdk.unregisterScreenshot( ) Method #
描述:
当页面退出,或者不需要截屏监听的时候,就需要移除这个监听了。
对应native接口:unregisterScreenshot
hysdk.unregisterScreenshot({
success: function() {
hysdk.log('解除注册截屏成功');
},
fail: function() {
hysdk.log('解除注册截屏失败');
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) X Hy Browser (非qunar) X touch X X ctrip X
hysdk.setClipboard( ) Method #
描述:
设置剪贴板内容
对应native接口:tool.setClipboard
hysdk.setClipboard({
content:'我是拷贝内容',
success: function() {
console.log('设置成功');
},
fail: function() {
console.log('设置失败');
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.getClipboard( ) Method #
描述:
获取剪贴板内容
对应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 X ctrip X
hysdk.checkPermission( ) Method #
描述:
APP是否开启Push状态查询:查询push权限是否打开
对应native接口:tool.checkPermission
hysdk.checkPermission({
type: 'notification', // 必填参数,只支持‘notification’这个值,不传回调 errorCode:10004
success: function(notification) {
successLog(notification); // notification:0未打开,1打开
},
fail: function(err) {
errLog(err)
}
});
额外说明:
参数 类型 描述 必选 注明 type String "notification" √ 只支持这个值 "notification",不传回调errorCode:10004
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.openPrefs( ) Method #
描述:
APP是否开启Push状态查询:跳转到push权限设置页
对应native接口:tool.openPrefs
hysdk.openPrefs({
// common
type: 'notification' , // 必填参数,只支持‘notification’这个值
isShowDialog: true, // 非必填参数,是否展示弹窗,默认弹窗;若不弹窗直接跳到系统设置页面
title: '请求使用通知服务', // 非必填,弹窗title
message: '关闭通知后,您将无法收到相关的通知。打开推送通知有助于我们为您更好的提供服务', // 非必填,弹窗内容
// adr
positive: '去设置', // 非必填,确认按钮文字
negative: '取消', // 非必填,取消按钮文字
success: function(data) {
successLog(data);
},
fail: function(err) {
errLog(err)
}
});
额外说明:
参数 类型 描述 必选 注明 type String "notification" √ 只支持这个值 "notification",不传回调errorCode:10004 isShowDialog Boolean 是否弹出dialog X 不写,默认弹窗;不弹窗直接跳到系统设置页面 title String dialog title X 默认值:请求使用通知服务 message String dialoge message X 默认值:关闭通知后,您将无法收到相关的通知。打开推送通知有助于我们为您更好的提供服务 positive String dialog positive button text X 仅针对安卓,默认值:去设置 negative String dialog negative X 仅针对安卓,默认值:取消
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.checkPhonePermission( ) Method #
描述:
APP权限检查
对应native接口:checkPhonePermission
hysdk.checkPhonePermission({
permissions: [
'photo', //读取相册权限
'camera', //拍照摄像权限
'microphone', //麦克风权限
'location', //地理位置
'push', //通知权限
'contacts', //联系人权限
'read_calender', //读取日历
'write_calender', //写日历
'read_external_storage', //读取外部存储
'write_external_storage', //写入外部存储
'read_phone_state', //读取手机状态信息
'write_settings', //修改系统内容设置
'system_alert_window', //悬浮窗权限
'send_sms', //发短信权限
'call_phone', //拨打电话权限
'account_manager ' //账户权限
], // 必填参数,数组
success: function (result) {
// result 示例
/**
* {
"read_calender":{
"state":false
},
"write_calender":{
"state":false
},
"camera":{
"state":false
},
"contacts":{
"state":false
},
"location":{
"state":true,
"stateDesc":0 // 此处0、1、2分别表示:LocationUnknownAccuracy = 0, // 未知精度 LocationReducedAccuracy = 1, // 模糊定位 LocationFullAccuracy = 2, //精准定位
},
"microphone":{
"state":false
},
"12123":{
"state":false,
"errorDesc":"unknown permission key"
},
"photo":{
"state":true,
"stateDesc": 'all', // 取值 all / user_selected / none 分别表示 全部相册权限 / 部分相册权限 / 无相册权限 (adr 60001580 ios 80011321 新增)
},
"push":{
"state":true
}
额外说明:
参数 类型 描述 必选 注明 permissions Array APP权限检查 √ 需要检查的权限名
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011266 Android 60001462
hysdk.jumpAppSettings( ) Method #
描述:
APP权限检查
对应native接口:jumpAppSettings
hysdk.jumpAppSettings({
success: function (result) {
successLog(result);
},
fail: function (err) {
errLog(err);
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011270 Android 60001469
hysdk.signature( ) Method #
描述:
风控参数加签
对应native接口:app.uti
hysdk.signature({
content: '', // 必须为 JSON 字符串
success: function (result) {
successLog(result);
},
fail: function (err) {
errLog(err);
}
});
额外说明:
参数 类型 描述 必选 注明 content String 加签内容 √ 格式必须为 JSON 字符串
运行环境 是否支持 Hy √ Hy Browser (qunar) X Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011275 Android 60001480
hysdk.pushGuideView( ) Method #
描述:
弹窗指引
对应native接口:pushGuideView
hysdk.pushGuideView({
imgUrl: "", // 必须为字符串
type: 1, // int 整型
imgUrl: "", // 必须为字符串
origin: "", // 必须为字符串
success: function(result) {
console.log(result);
},
fail: function(err) {
console.error(err);
},
});
额外说明:
参数 类型 描述 必选 注明 imgUrl String 图片url √ 格式必须为字符串 type number 类型 √ 整型 businessType String 业务类型 √ 格式必须为字符串 origin String 来源 √ 格式必须为字符串
- | success | Function | success 回调 | X | 常用参数 | | fail | Function | fail 回调 | X | 常用参数 |
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011275 Android 60001480
hysdk.multiPicDownloadAndSaveAlbum( ) Method #
描述:
一键保存多张图片
对应native接口:multiPicDownloadAndSaveAlbum
hysdk.multiPicDownloadAndSaveAlbum({
imgUrls: [
'https://t7.baidu.com/it/u=2621658848,3952322712&fm=193&f=GIF',
'https://t7.baidu.com/it/u=3631608752,3069876728&fm=193&f=GIF',
'https://t7.baidu.com/it/u=124476473,2583135375&fm=193&f=GIF',
'https://alifei03.cfp.cn/creative/vcg/800/new/VCG211184259367-BXL.jpg',
'https://t7.baidu.com/it/u=2052154763,2830034343&fm=193&f=GIFghjgjhgjhgjgjghj'
],
success: function(result) {
// 成功就返回{}
console.log(result);
},
fail: function(err) {
/**
* 错误回调返回结果说明
HYErrorCodeUserCancle= 10023(状态码), 取消权限
HYErrorCodeParamTypeInvalid= 10002, 参数错误,没有imageurls
HYErrorCodeDataAcquireFailed= 10005, 图片下载保存失败
HYErrorCodeTimeout= 10010, 超时
状态码为10005/10010时,失败返回url列表。比如:{failurls:[ 'http://www.baidu.com/img1', 'http://www.souhu.com/img2.jpg']}
状态码为10023/10002时, 失败返回 {}
*/
console.error(err);
}
});
额外说明:
参数 类型 描述 必选 注明 imgUrl String 图片url √ 格式必须为字符串
- | success | Function | success 回调 | X | 常用参数 | | fail | Function | fail 回调 | X | 常用参数 |
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011292 Android 60001528
hysdk.videoDownloadAndSaveAlbum( ) Method #
描述:
保存单个视频到相册
对应native接口:videoDownloadAndSaveAlbum
hysdk.videoDownloadAndSaveAlbum({
videoUrl: 'https://source.qunarzz.com/site/images/wns/20230706_app1080x2340_13214.mp4',
success: function(result) {
// 成功就返回{}
console.log(result);
},
fail: function(err) {
/**
* 错误回调返回结果说明
HYErrorCodeUserCancle= 10023(状态码), 取消权限
HYErrorCodeParamTypeInvalid= 10002, 参数错误,没有videoUrl
HYErrorCodeDataAcquireFailed= 10005, 图片下载保存失败
*/
console.error(err);
}
});
额外说明:
参数 类型 描述 必选 注明 videoUrl String 视频url √ 格式必须为字符串
- | success | Function | success 回调 | X | 常用参数 | | fail | Function | fail 回调 | X | 常用参数 |
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011304 Android 60001553
hysdk.requestAudioPermission( ) Method #
描述:
求录音权限
对应native接口:requestAudioPermission
hysdk.requestAudioPermission({
success: function(result) {
// 成功就返回{}
console.log(result);
},
fail: function(err) {
/**
* 错误回调返回结果说明
code= -1000(状态码), 用户拒绝权限授予
*/
console.error(err);
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011337 Android 60001630
hysdk.startRecordWithParam( ) Method #
描述: 开始录音,期间如果没有权限,会请求权限,请求权限的时间不算在录音时长中br /> 对应native接口:startRecordWithParam
hysdk.startRecordWithParam({
numberOfChannel:2,//非必传 默认2
maxDuration:60,//非必传,默认60,单位秒
sampleRate:44100, //非必传,默认44100,单位Hz
success: function(result) {
// 成功就返回{}
console.log(result);
},
fail: function(err) {
/**
* 错误回调返回结果说明
code= -1000(状态码), 用户拒绝权限授予
*/
console.error(err);
}
});
额外说明:
参数 类型 描述 必选 注明 numberOfChannel Int 通道数 X 格式必须为数字,默认为2 maxDuration Int 录音最长时间,单位:秒 X 格式必须为数字,默认为60 秒 sampleRate Int 采样率 X 格式必须为数字,默认为44100
- | success | Function | success 回调 | X | 常用参数 | | fail | Function | fail 回调 | X | 常用参数 |
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011337 Android 60001630
hysdk.deleteFilePath( ) Method #
描述:
删除录音文件
对应native接口:deleteFilePath
hysdk.deleteFilePath({
path:"xxxxx",//文件路径,必传
success: function(result) {
// 成功就返回{}
console.log(result);
},
fail: function(err) {
/**
* 错误回调返回结果说明
code= -1003(状态码),路径不存在
*/
console.error(err);
}
});
额外说明:
参数 类型 描述 必选 注明 path String 删除录音的文件路径 √ 格式必须为字符串
- | success | Function | success 回调 | X | 常用参数 | | fail | Function | fail 回调 | X | 常用参数 |
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011337 Android 60001630
hysdk.cancelRecorder( ) Method #
描述:
取消录音,如果当前正在录音,则取消当前录音,startRecordWithParam会回调失败
对应native接口:cancelRecorder
hysdk.cancelRecorder();
额外说明:
参数 类型 描述 必选 注明 success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011337 Android 60001630
hysdk.stopRecorder( ) Method #
描述:
停止,如果当前正在录音,则停止当前录音,startRecordWithParam会回调录音信息
对应native接口:stopRecorder
hysdk.stopRecorder();
额外说明:
参数 类型 描述 必选 注明
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011337 Android 60001630
hysdk.newGetLocation( ) Method #
描述:
获取地理位置新接口
对应native接口:geolocation.newGetCurrentPosition
hysdk.newGetLocation({
forceLocation: true, // 是否允许强制定位
type: 'wgs84', // type 参数仅 wechat 支持,hy未实现 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
timeout: 5000, // 非必填。当定位时间超出此限制时,调用失败回调。单位:ms
maximumAge: 3000, // 非必填。可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
permissionCheckType: 0, // 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
success: function(res){
// res 结构
res = {
"type": "baidu", // gps , baidu
"coords": {
"latitude": 1, // 纬度,浮点数,范围为90 ~ -90
"longitude": 1, // 经度,浮点数,范围为180 ~ -180。
"accuracy": 1, // 位置精度
"timestamp": "111111", // 格式不统一
"type": '', // GPS, baidu (未上线)
"coordinateType": "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
}
}
},
fail: function(){
alert(JSON.stringify(arguments))
}
})
额外说明:
参数 类型 描述 必选 注明 type String 坐标类型 X 非常用参数,仅微信支持,默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' permissionCheckType Number 权限申请方式 X 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调 timeout Number 超时设置 X 非常用参数,当定位时间超出此限制时,调用失败回调。单位:ms maximumAge Number 缓存定位结果时间 X 非常用参数,可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms showNoPermsTips boolean 是否弹出"请您开启定位权限 仅安卓且vid: 60001462 支持 X 用户拒绝后,是否弹出"请您开启定位权限,否则无法使用定位功能"Toast提醒, 默认是true forceLocation boolean 是否允许强制定位 success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) √ touch √ (https) √ ctrip √
hysdk.getLocation( ) Method #
描述:
获取地理位置接口
对应native接口:geolocation.getCurrentPosition
hysdk.getLocation({
type: 'wgs84', // type 参数仅 wechat 支持,hy未实现 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
timeout: 5000, // 非必填。当定位时间超出此限制时,调用失败回调。单位:ms
maximumAge: 3000, // 非必填。可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms
permissionCheckType: 0, // 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调
success: function(res){
// res 结构
res = {
"type": "baidu", // gps , baidu
"coords": {
"latitude": 1, // 纬度,浮点数,范围为90 ~ -90
"longitude": 1, // 经度,浮点数,范围为180 ~ -180。
"accuracy": 1, // 位置精度
"timestamp": "111111", // 格式不统一
"type": '', // GPS, baidu (未上线)
"coordinateType": "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
}
}
},
fail: function(){
alert(JSON.stringify(arguments))
}
})
额外说明:
参数 类型 描述 必选 注明 type String 坐标类型 X 非常用参数,仅微信支持,默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' permissionCheckType Number 权限申请方式 X 0: 默认原有逻辑 1: 之前申请过权限, 但是被拒绝了, 本次不再申请权限, 执行失败回调 timeout Number 超时设置 X 非常用参数,当定位时间超出此限制时,调用失败回调。单位:ms maximumAge Number 缓存定位结果时间 X 非常用参数,可以接受的缓存定位结果时间,当上次定位的时间距今在设定值的范围内,则直接使用上次的定位结果。可用于快速定位、对精度要求不高的场景。单位:ms showNoPermsTips boolean 是否弹出"请您开启定位权限 仅安卓且vid: 60001462 支持 X 用户拒绝后,是否弹出"请您开启定位权限,否则无法使用定位功能"Toast提醒, 默认是true success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) √ touch √ (https) √ ctrip √
hysdk.newRequestCacheLocation( ) Method #
描述:
通过缓存获取地理位置接口
对应native接口:geolocation.newGetCacheLocation
hysdk.newRequestCacheLocation({
forceLocation: true, // 仅对老版的包生效 非必传 如果为true,则会调hysdk.getLocation进行定位;如果为false,则success返回的结果为空
success: function(res) {
// res 结构
res = {
type: 'baidu', // gps , baidu
coords: {
latitude: 1, // 纬度,浮点数,范围为90 ~ -90
longitude: 1, // 经度,浮点数,范围为180 ~ -180。
accuracy: 1, // 位置精度
timestamp: '111111', // 格式不统一
type: '', // GPS, baidu (未上线)
coordinateType: "BD09" // 坐标系,Android vid:60001535; iOS vid:80011294后支持; Android 国内:BD09,国外:WGS84; iOS国内:WGS84,国外:WGS84
},
};
},
fail: function() {
alert(JSON.stringify(arguments));
},
});
额外说明:
参数 类型 描述 必选 注明 success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) x touch x x ctrip x
Device Event API #
hysdk.onReceiveScreenshot( ) Method #
描述:
监听截屏事件,一定要配合 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 X ctrip X
WebView API #
hysdk.openWebView( ) Method #
描述:
打开新的webView
使用场景:搞SPA的话native导航栏没法跟h5实现同步的动画效果,故此处将定义导航栏的API加入新开webView的API中,由调用新webView者决定下一页的导航栏样式。
对应native接口:webview.open
// hy
hysdk.openWebView({
url: 'http://address.of.target.url/',
// 以下参数当位于大客户端时可用:
// 指定将要打开的 view 的名称,与 setWebViewAttr 设置 name 的作用类似
// 与其主要区别在于,openWebView 是给下一个页面设置 name,而 setWebViewAttr 是给当前页设置
name: 'nameOfView',
// view 通信数据,子view通过getInitData获取
data: {},
// 页面打开的进入的方式,可选,默认为'moveFromRight',
//'moveFromRight'为从右边切换进入,'moveFromBottom'为从屏幕底部进入屏幕
animate: 'moveFromRight',
// navigation已经满足不了你了,这不重要
type: 'navibar-normal', // navigation样式,自己定制吧;
/*
* type:{
* navibar-normal
* navibar-transparent, // 透明导航条
* navibar-none, // 无导航条
* }
*/
// 调整导航栏的外观,详情见附录
navigation: {
title: { // 指定标题
style: 'text', // 标题样式: text: 普通文本 | location: 标题右侧带一个小箭头
text: '我是标题' // 标题文字
},
left: { // 指定左侧按钮
style: 'text', // 按钮样式: text: 文本按钮 | icon: 图标按钮, 不填则保留一个默认的返回按钮
text: '按钮', // 按钮样式为text时,应用此字段作为按钮文字
icon: '\uf067' // 按钮样式为icon时,应用此字段作为图标
},
right: {
// 跟left相同,但无默认按钮
}
},
//页面关闭后返回的数据
onViewBack: function(res){
// res: 根据用户反馈的数据展示
}
});
// h5
hysdk.openWebView({
url: 'http://address.of.target.url/',
name: 'DescriptiveWindowName', // A name for the new window
features: 'resizable,scrollbars,status',
});
额外说明:
注意:h5环境下,即为window.open方法,传参数改成传对象格式的参数,对应url, name和features,参考示例和mdn文档
参数 类型 说明 iOS Android touch 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
也可以是 nonetype string navibar的类型
缺省值为navibar-normal
也可为navibar-transparent (透明的navibar)、navibar-none (没有navibar)navigation object navigation参数
type为navibar-normal时
type为navibar-transparent时onViewBack function A 页面使用 openWebView 打开新页面 B 时传入该参数,当在 B 页面中使用 closeWebView 关闭页面并回到 A 页面,同时回传数据,在 A 页面可以通过该函数接收回传的数据。hysdk 1.2.0 及以上版本支持
运行环境 是否支持 Hy √ Hy Browser (qunar) X Hy Browser (非qunar) X touch √ X ctrip √
hysdk.closeWebView( ) Method #
描述:
关闭当前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 X ctrip √
hysdk.closeTargetWebView( ) Method #
描述:
关闭指定的view (1.3.6 以上版本提供)
使用场景:指定关闭历史中的某一个 View
对应native接口:webview.close
hysdk.closeTargetWebView({
name: 'nameOfView' // 指定关闭历史中的某一个 View
});
额外说明:
参数 类型 描述 必选 注明 name String 视图名 √ 要关闭的 View 的名称 注: 依赖大客户端 2018 年 6 月版。 iOS 80011158,android hy 64
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip √
hysdk.setWebViewAttr( ) Method #
描述:
设置当前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 支持版本 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 X ctrip √
hysdk.getInitData( ) Method #
描述:
获取初始化数据
使用场景:由父级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 X ctrip X
hysdk.setStatus( ) Method #
描述:
设置状态栏颜色
使用场景:希望修改状态栏颜色,比如页面是黑色,希望设置状态栏颜色为白色
对应native接口:qunarnative.status
hysdk.setStatus({
// 设置状态栏颜色
style: 'light', //状态栏颜色,只能为default(黑色)或者light(白色),不传参数(不代表style为空)时默认为default。
success: function(res){
console.log(res.style);//设置成功的状态栏颜色
},
fail: function(res){
console.log('%s %s', res.errcode, res.errmsg);
}
})
额外说明:
参数 类型 描述 必选 注明 style String 状态栏颜色 X 常用参数,只能为default(黑色)或者light(白色),不传参数(不代表style为空)时默认为default success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) X Hy Browser (非qunar) X touch X X ctrip √
hysdk.enableBackGesture( ) Method #
描述:
设置webview是否支持ios的后退手势
使用场景:需要单独开启或关闭ios的后退手势时
对应native接口:qunarnative.gesturesView
hysdk.enableBackGesture({
enable: true/false // true为开启,false为禁止
});
额外说明:
运行环境 是否支持 Hy √(IOS) Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip √
hysdk.hideLoadView( ) Method #
描述:
隐藏 Loading 页面
对应native接口:webview.hideLoadView
hysdk.hideLoadView({})
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) X Hy Browser (非qunar) X touch X X ctrip √
hysdk.getHistory( ) Method #
描述:
获取 View History
对应native接口:view.list
hysdk.getHistory({
success: function (data) {
console.log(data);
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.getCookie( ) Method #
描述:
获取 getCookie
对应native接口:getRecentCookie
./getCookie.js[1-7]
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.businessEndLog( ) Method #
描述:
手动增加页面加载完成的埋点(仅ios)
对应native接口:webview.businessEndLog
hysdk.businessEndLog({
success: function(res){
// 上报日志成功
},
fail: function(){
alert(JSON.stringify(arguments))
}
})
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.getHeaderStatus( ) Method #
描述:
获取当前页面是否有导航栏
对应native接口:webview.headerStatus
hysdk.getHeaderStatus({
success: function(res){
// 返回的数据
res = {
hasHeader: true // 返回是否有header的布尔值
}
},
fail: function(){
alert(JSON.stringify(arguments))
}
})
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
WebView Event API #
hysdk.onShow( ) Method #
描述:
打开View时,触发
使用场景:需要在入场动画结束时做相应处理时绑定该事件。此页面显示时触发
对应native接口:webview.onShow
hysdk.onShow({
success: function(){
// Do something
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) X Hy Browser (非qunar) X touch X X ctrip √
hysdk.onHide( ) Method #
描述:
关闭View时,触发
使用场景:需要在出场动画结束时做相应处理时绑定该事件。此页面隐藏时触发
对应native接口:webview.onHide
hysdk.onHide({
success: function(){
// Do something
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) X Hy Browser (非qunar) X touch X X ctrip X
hysdk.onReceiveData( ) Method #
描述:
下一个页面关闭后接收数据触发
使用场景:需要接收下一个页面反馈数据时绑定该事件。作为前一个页面,下一个页面关闭后被触发
对应native接口:webview.onReceiveData
hysdk.onReceiveData({
success: function(){
// Do something
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip √
hysdk.onCloseWebView( ) Method #
描述:
下一个页面关闭后触发
使用场景:需要知道下一页面关闭情况时绑定该事件。
对应native接口:webview.targetClosed
hysdk.onCloseWebView({
success: function(){
// Do something
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.onLoadingClose( ) Method #
描述:
页面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 X ctrip X
Navigation API #
hysdk.navRefresh( ) Method #
描述:
改变当前view导航样式
使用场景:当导航样式需要在用户交互发生改变的情况下调用
对应native接口:navigation.refresh
hysdk.navRefresh(
// 与openWebview中的navigation字段相同,详情见附录。
{
title: {
style: 'location',
text: '北京'
}
}
)
额外说明:
参数 类型 说明 IOS Android touch object navigation参数,见附录 √ √ X X
运行环境 是否支持 Hy √ Hy Browser (qunar) X Hy Browser (非qunar) X touch X X ctrip √
hysdk.getNavDisplayStatus( ) Method #
描述:
获取当前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 X ctrip √
hysdk.setNavDisplayStatus( ) Method #
描述:
设置当前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 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 X ctrip √
Navigation Event API #
hysdk.onNavClick( ) Method #
描述:
监听导航条的点击事件
使用场景:需要在点击导航条时触发一定条件时调用
对应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 X ctrip √
Window API #
hysdk.closeWindow( ) Method #
描述:
关闭当前窗口
对应native接口:webview.back
hysdk.closeWindow({});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X √ ctrip √
hysdk.hideOptionMenu( ) Method #
描述:
隐藏右上角菜单(当前版本效果和 hideAllNonBaseMenuItem 相同)
对应native接口:hideOptionMenu
hysdk.hideOptionMenu({});
额外说明:
运行环境 是否支持 Hy X Hy Browser (qunar) √ Hy Browser (非qunar) X touch X √ ctrip X
hysdk.showOptionMenu( ) Method #
描述:
显示右上角菜单(当前版本效果和 showAllNonBaseMenuItem 相同)
对应native接口:showOptionMenu
hysdk.showOptionMenu({});
额外说明:
运行环境 是否支持 Hy X Hy Browser (qunar) √ Hy Browser (非qunar) X touch X √ ctrip X
hysdk.hideMenuItems( ) Method #
描述:
批量隐藏功能按钮
对应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 √ ctrip X
hysdk.showMenuItems( ) Method #
描述:
批量显示功能按钮接口
对应native接口:showMenuItems
hysdk.showMenuItems({
menuList: ['menuItem:favorite'] // 要显示的菜单项
})
额外说明:
菜单列表如 hideMenuItems
运行环境 是否支持 Hy X Hy Browser (qunar) X Hy Browser (非qunar) X touch X √ ctrip X
hysdk.hideAllNonBaseMenuItem( ) Method #
描述:
隐藏所有非基础按钮
对应native接口:hideAllNonBaseMenuItem
hysdk.hideAllNonBaseMenuItem({});
额外说明:
运行环境 是否支持 Hy X Hy Browser (qunar) X Hy Browser (非qunar) X touch X √ ctrip X
hysdk.showAllNonBaseMenuItem( ) Method #
描述:
显示所有功能按钮
对应native接口:showAllNonBaseMenuItem
hysdk.showAllNonBaseMenuItem({});
额外说明:
运行环境 是否支持 Hy X Hy Browser (qunar) X Hy Browser (非qunar) X touch X √ ctrip X
Image API #
hysdk.chooseImage( ) Method #
描述:
拍照或从手机相册中选取图片
推荐使用 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 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 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 √ ctrip √
hysdk.selectImage( ) Method #
描述:
拍照或从手机相册中选取图片
新版 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 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 array 只有微信有该参数,返回选定照片的本地ID列表
localId可为img标签的src属性X X X √ localImgs array 对象数组,每个对象元素包括照片ID和拍摄角度,例如:[{ angle: 0, id: "//imghy/storage/emulated/0/Pictures/xxx/3.png"}, ...] √ √ X X thumbnails array 对象数组,每个对象元素包括照片ID和拍摄角度,
只有请求中设置了thumbnail参数才会返回
返回选定照片的本地缩略图ID列表
thumbnail可为img标签的src属性新大客户端、独立客户端 HytiveLib: 1.3.0+ 大客户端browser vid: 29+ X X 注意:该接口 hysdk 1.2.7 及以上版本支持,iOS 4.10.18 及以上版本、Android 8.6.4 及以上版本支持
hysdk 1.3.4 版本,selectImage 对老版本进行了兼容,因为 iOS 4.10.18 及以上版本、Android 8.6.4 及以上版本的客户端才支持 chooseImage.v1 桥, 在 iOS 4.10.18、Android 8.6.4 之前的版本,调用 hysdk.selectImage,内部会调用 chooseImage,所以,业务可以直接使用 hysdk.selectImage 代替 hysdk.chooseImage,而不需要业务自己兼容老版本; 需要注意的是:在 iOS 4.10.18、Android 8.6.4 之前的版本中使用 checkJsApi 检测 selectImage,得到的值还是 false(进行了兼容,实际可用);返回的数据中图片的拍摄角度都默认是 0(之前本身就不支持获取拍摄角度)
运行环境 是否支持 Hy √ Hy Browser (qunar) X Hy Browser (非qunar) X touch X √ ctrip X
hysdk.uploadImage( ) Method #
描述:
上传图片
对应native接口:uploadImage.v1
hysdk.uploadImage({
localId: image.localIds[0], // 需要上传的单张图片的本地ID,由selectImage(chooseImage 现在不推荐使用)接口获得
// 根据上传http请求的response状态码判断回调函数,状态码为200时调用success,否则调用fail
// success函数的res.responseData参数为服务器返回的数据
success: function (res) {
var serverMessage = res.responseData; // 图片服务器返回的数据内容,string类型
alert( JSON.stringify(res) )
},
fail: function (res) {
alert( JSON.stringify(res) )
},
//以下4个参数hy独有
serverAddress: "http://upload.user.qunar.com/userVerifyInfo/upload?token=123456",
serverParams: { // post到服务器的参数map(可选)
paramA: "123",
paramB: "456"
},
fileKey: "file", // 服务器端图片文件所对应的参数名(可选,默认值为“file”)
maxPixel : 720, //图片的长、宽最大像素尺寸。
//也可以使用'original'、'high'、'middle'、'low'按预设品质压缩
//分别对应为原图、1200、800、400
quality: 80 // JPG压缩参数,不改变图片尺寸。为1-100之间的整数。
//也可以使用'original'、'high'、'middle'、'low'按预设品质压缩
//分别对应为100、90、70、50
});
额外说明:
请求参数说明:
参数 类型 说明 iOS Android touch localId string 需要上传的图片的本地ID,由selectImage(chooseImage 现在不推荐使用)接口获得,与 localIds 二选一,localId 上传一张图片 √ √ X √ localIds Array 需要上传的图片的本地ID,由selectImage(chooseImage 现在不推荐使用)接口获得,与 localId 二选一,localIds 上传多张图片,前端控制的队列上传,多次调用桥(仅 hy 支持, hysdk 1.2.2 及以上版本支持) X serverAddress string 上传服务地址。当不指定协议时,会根据当前页面的协议自动补齐。
例如当前页面是 http 协议,serverAddress 值是 '//www.qunar.com',自动补齐为 'http://www.qunar.com',若指定则指定的优先级最高(自动补齐协议仅 Hy 支持,hysdk 1.2.4 及以上版本支持)
上传可以使用公共接口 https://picture.qunar.com/api/img/uploadserverParams map post到服务器的参数map(可选) fileKey string 服务器端接口中文件对应的参数名
(可选,默认值为"file")maxPixel number
或者
string上传图片长宽最大尺寸,
可以使用'original'、'high'、'middle'、'low'
按预设品质压缩
分别对应为原图、1200、800、400quality number
或者
string上传图片JPG压缩参数,尺寸不变。
为1-100之间的整数。
也可以使用'original'、'high'、'middle'、'low'
按预设品质压缩
分别对应为100、90、70、50上传单张图片返回字段说明:
返回字段 类型 说明 IOS Android touch responseData string 服务器返回的数据 √ √ X X(object) 上传多张图片返回字段说明:
返回字段 类型 说明 IOS Android touch data Array 服务器返回的数据(每个元素与上传单张返回的数据结构一致) √ √ X X(object) 微信平台,上传后会返回 mediaId,使用公共接口将 mediaId 转化为线上图片地址 https://picture.qunar.com/api/wechatImg/upload 此接口,只能用于使用公司主微信公众号接口上传的图片。
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) √ touch X √ ctrip X
hysdk.previewImage( ) Method #
描述:
预览图片
对应native接口:previewImage
hysdk.previewImage({
current: '', // 当前显示的图片链接
urls: [] // 需要预览的图片链接列表
});
额外说明:
参数 类型 描述 必选 注明 current String 当前显示的图片链接 √ 常用参数,仅微信支持 urls Array 需要预览的图片链接列表 √ 常用参数,仅微信支持
运行环境 是否支持 Hy X Hy Browser (qunar) X Hy Browser (非qunar) X touch X √ ctrip X
hysdk.downloadImage( ) Method #
描述:
下载图片
对应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 √ ctrip X
hysdk.convertPath( ) Method #
描述:
转换图片路径
对应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);
}
});
额外说明:
注意:该接口 hysdk 1.2.5 及以上版本支持,iOS 4.10.16 及以上版本、Android 8.6.2 及以上版本支持
参数 类型 描述 必选 注明 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 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) X Hy Browser (非qunar) X touch X X ctrip X
Schema API #
hysdk.schemeForResult( ) Method #
描述:
调用 scheme 获取回执
对应native接口:schemeForResult
hysdk.schemeForResult({
//调用Native的scheme,比如打开日历的scheme,必填
scheme: 'qunariphone://xxxxx',
//新增新路由的action方式的回调,设置useAction=true生效,此标识仅对Adr生效
useAction: true,
//Native回调成功(success()是否调用取决于Native代码是否回调)
success: function (data) {
//data 是通过scheme调用Native后,Native返回的数据
//需要注意的是这个data的结构是由Native逻辑所决定的,
//因此如果iOS和安卓的Native代码实现不一致,该data的结构也会不一致!!!
},
//scheme打开失败或者参数错误
fail: function (err) {
alert(JSON.stringify(err));
},
});
额外说明:
参数 类型 描述 必选 注明 scheme String scheme 地址 √ 常用参数 success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.launchMiniProgram( ) Method #
描述:
通过launchMiniProgram唤起小程序
使用场景:从APP中跳转至某一微信小程序的指定页面
hysdk.launchMiniProgram({
userName: 'gh_7ffb9c5d761f',
path:'/home/pages/index',
miniprogramType:0,
success: function(data) {
//
},
fail: function() {
//
}
});
额外说明:
参数 类型 描述 必选 注明 userName String 小程序原始Id √ 常用参数 path String 唤起小程序页面的可带参路径 X 常用参数 miniprogramType Number 小程序类型 1 (开发版)2(体验版)0(线上版) X 常用参数 success Function success 回调 X 常用参数 fail Function fail 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:支持版本:IOS 80011196 Android 60001305
Share API #
hysdk.showShareItems( ) Method #
描述:
唤起分享dialog
对应native接口:doShare
hysdk.showShareItems({
success: function () {
// 用户点击了分享dialog中的分享按钮
// do something
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser √ Hy Browser (非qunar) √ touch X X ctrip X 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.shareTimeline( ) Method #
描述:
主动调起“分享到朋友圈”分享内容接口
对应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 X ctrip √ 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.shareAppMessage( ) Method #
描述:
主动调起“分享给朋友”分享内容接口
对应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 X ctrip √ 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.shareWeiboApp( ) Method #
描述:
主动调起“新浪微博”分享内容接口
对应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 X ctrip √ 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.shareSMS( ) Method #
描述:
主动调起“短信”分享内容接口
对应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 X ctrip √ 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.shareEmail( ) Method #
描述:
主动调起“邮件”分享内容接口
对应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 X ctrip √ 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.shareQunarIM( ) Method #
描述:
主动调起“去哪儿好友”分享内容接口
对应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 X ctrip X 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.registerScreenshotShare( ) Method #
描述:
注册监听后,就会监听页面的截屏事件。一旦用户进行了截屏操作,就会在屏幕右侧有个中间页提示分享
对应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 X ctrip X 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.registerShareWithPreview( ) Method #
描述:
注册监听后,就会监听页面的截屏事件。一旦用户进行了截屏操作,就会在屏幕右侧有个中间页提示分享
对应native接口:registerShareWithPreview
./registerShareWithPreview.js[1-11]
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.unregisterScreenshotShare( ) Method #
描述:
当页面退出,或者不需要截屏监听的时候,就需要移除这个监听了。 需要注意的是:只要注册了一个监听,就需要在使用监听完成后移除一个监听。
不需要传入参数,没有回调
对应native接口:unregisterScreenshotShare
hysdk.unregisterScreenshotShare();
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.screenshotAndShare( ) Method #
描述:
用户主动截屏分享,当按下分享按钮,就会执行这个功能,弹出右侧的中间页提示分享。 用户主动截屏的话,不用注册监听。
对应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 X ctrip X 注:v1.3.0 以后,推荐使用新 API - Share
hysdk.longPicShare( ) Method #
描述:
对指定内容的web页面提供页面保存为图片和将图片分享至微信的功能。
对应native接口:longPic.share
hysdk.longPicShare({
// 注:
// 1.HTML可以是完整的网页内容
// 2.支持img引入外部图片
// 3.支持link标签
// 4.支持script标签
// 5.link,script建议不外链
// 6.提供给用户的操作:分享至微信好友、分享至微信朋友圈、保存到本地相册
picHtml: "<html><body><div style='color: red; font-size: 35px; width: 100%; text-align: center'>长图分享</div></body></html>", // web页面的html文本
success: function(res) {
// res = {
// "success":true,
// "type":0
// }
// 注:
// 1.只在长图分享页面关闭时调用,且只在用户有分享或保存操作后回调
// 2.success:最后一个操作是否操作成功(true | false)
// 3.type:用户最后一个操作(0:分享至微信好友, 1:分享至微信朋友圈, 3:保存至相册)
}
})
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X 注: 支持版本:iOS 80011166,android 60001237, hysdk版本: 1.3.12
hysdk.onMenuShareTimeline( ) Method #
描述:
获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareTimeline
hysdk.onMenuShareTimeline({
title: '分享到朋友圈', // 标题
link: 'http://hy.qunar.com/', // 链接URL
desc: '分享到朋友圈,描述', // 描述
imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});
额外说明:
参数与 shareTimeline API 基本一致(大客户端环境下不支持 success、fail 回调)
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X √ ctrip X
hysdk.onMenuShareAppMessage( ) Method #
描述:
获取“分享给朋友”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareAppMessage
hysdk.onMenuShareAppMessage({
title: '分享到微信朋友', // 标题
link: 'http://hy.qunar.com/', // 链接URL
desc: '分享到微信朋友,描述', // 描述
imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});
额外说明:
参数与 shareTimeline API 基本一致(大客户端环境下不支持 success、fail 回调)
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X √ ctrip X
hysdk.onMenuShareWeiboApp( ) Method #
描述:
获取“新浪微博”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareWeiboApp
hysdk.onMenuShareWeibo({
title: '分享到新浪微博', // 标题
link: 'http://hy.qunar.com/', // 链接URL
desc: '分享到新浪微博,描述', // 描述
imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});
额外说明:
参数与 shareTimeline API一致(大客户端环境下不支持 success、fail 回调)
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.onMenuShareWeibo( ) Method #
描述:
获取“腾讯微博”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareWeibo
hysdk.onMenuShareWeibo({
title: '分享到腾讯微博', // 标题
link: 'http://hy.qunar.com/', // 链接URL
desc: '分享到腾讯微博,描述', // 描述
imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});
额外说明:
参数与 shareTimeline API一致(大客户端环境下不支持 success、fail 回调)
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X √ ctrip X
hysdk.onMenuShareQQ( ) Method #
描述:
获取“分享给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 √ ctrip X
hysdk.onMenuShareQZone( ) Method #
描述:
获取“分享到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 √ ctrip X
hysdk.onMenuShareSMS( ) Method #
描述:
获取“短信”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareSMS
hysdk.onMenuShareSMS({
title: '分享到短信', // 标题
link: 'http://hy.qunar.com/', // 链接URL
desc: '分享到短信,描述', // 描述
imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});
额外说明:
参数与 shareTimeline API一致(大客户端环境下不支持 success、fail 回调)
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.onMenuShareEmail( ) Method #
描述:
获取“邮件”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareEmail
hysdk.onMenuShareEmail({
title: '分享到邮件', // 标题
link: 'http://hy.qunar.com/', // 链接URL
desc: '分享到邮件,描述', // 描述
imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});
额外说明:
参数与 shareTimeline API一致(大客户端环境下不支持 success、fail 回调)
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.onMenuShareQunarIM( ) Method #
描述:
获取“去哪儿好友”按钮点击状态及自定义分享内容接口
对应native接口:onMenuShareQunarIM
hysdk.onMenuShareQunarIM({
title: '分享到去哪儿好友', // 标题
link: 'http://hy.qunar.com/', // 链接URL
desc: '分享到去哪儿好友描述', // 描述
imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});
额外说明:
参数与 shareTimeline API一致(大客户端环境下不支持 success、fail 回调)
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X
hysdk.onMenuShare( ) Method #
描述:
设置通用分享内容接口。自定义通用分享内容,并获取分享状态
对应native接口:onMenuShare
hysdk.onMenuShare({
title: '通用分享', // 标题
link: 'http://hy.qunar.com/', // 链接URL
desc: '通用分享,描述', // 描述
imgUrl: 'http://source.qunarzz.com/common/hf/logo.png' // 分享图标
});
额外说明:
参数与 shareTimeline API 基本一致(大客户端环境下不支持 success、fail 回调)
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) √ touch X X ctrip X Hy Browser: 默认获取网页标题和链接,可以设置通用分享内容,此时只支持设置通用分享内容,不支持对微博、微信分别设置分享内容
Scan API #
hysdk.scanQRCode( ) Method #
描述:
扫描二维码并返回结果
对应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 √ ctrip √
Log API #
hysdk.log( ) Method #
描述:
打印log日志
使用场景:调试时,使用alert会阻断进程,可以使用log进行调试
对应native接口:debug.log
hysdk.log( "message" );
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip √
hysdk.qav( ) Method #
描述:
为对接qav自动埋点
对应native接口:qav
hysdk.qav({
content: {"name": "jay"}, // 不可为空
start: '###', // 不可为空
end: '###', // 不可为空
success: function(res) {},
fail: function(err) {},
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip √
commonConfig API #
hysdk.setPersonalConfig( ) Method #
描述: 设置个性化推荐开关 对应native接口:commonConfig.setPersonalConfig
hysdk.setPersonalConfig({
openPersonalConfig: false // 设置个性化开关状态,默认为开
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser √ Hy Browser (非qunar) √ touch X X ctrip X
hysdk.getPersonalConfig( ) Method #
描述: 获取个性化推荐开关状态 对应native接口:commonConfig.getPersonalConfig
hysdk.getPersonalConfig({
success: function (res) {
var serverMessage = res.responseData;
alert( JSON.stringify(res) )
},
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser √ Hy Browser (非qunar) √ touch X X ctrip X
hysdk.getConfigByKey( ) Method #
描述: 通过key获取开关配置 对应native接口:commonConfig.getConfigByKey
hysdk.getConfigByKey({
key: 'qrnjsConfig',
success: function (res) {
alert(JSON.stringify(res))
},
fail: function (err) {
console.log(err);
}
});
额外说明:
运行环境 是否支持 Hy √ Hy Browser √ Hy Browser (非qunar) √ touch X X ctrip X
Pay.middlePay API #
hysdk.Pay.middlePay( ) Method #
描述:
调用 middlePay 获取支付
对应native接口:Pay.middlePay
hysdk.Pay.middlePay(
"qunariphonepro://trippay/fastpay?payToken=1017833572734742528",
(data) => {
console.log(data, "success");
alert(JSON.stringify(data) + "success");
},
(data) => {
console.log(data, "fail");
alert(JSON.stringify(data) + "fail");
}
);
额外说明:
参数 类型 描述 必选 注明 url String url 地址 √ 常用参数 payResultCallback Function payResultCallback 回调 X 常用参数 failCallback Function failCallback 回调 X 常用参数
运行环境 是否支持 Hy √ Hy Browser (qunar) √ Hy Browser (非qunar) X touch X X ctrip X