## 简介

HySDK是Hy方案面向开发者提供的前端开发工具包。

通过使用HySDK，前端开发者可以高效的使用 **分享**、**拍照**、**选图**、**位置** 等手机系统的能力，而不需要区分是页面是运行在Hy环境、微信或者浏览器环境。

同时根据业务需求，提供了 **Qunar 插件（对 Qunar 业务逻辑进行适配）** 与 **Fusion 插件（包含 Qunar 插件，同时支持 Ctrip Hybrid 方案）**，详细请见 [插件说明](http://ued.qunar.com/hy2/hysdk/plugins.html)。

Demo 地址: <http://ued.qunar.com/hy2/hysdk/demo/>

## 引入

最新版本: `1.2.6`

### Node Module

核心版:
> `qnpm install @qnpm/hysdk`

[Qunar插件](http://ued.qunar.com/hy2/hysdk/plugins.html#Qunar)：
> `qnpm install @qnpm/hysdk-qunar`

[Fusion插件](http://ued.qunar.com/hy2/hysdk/plugins.html#Fusion)：
> `qnpm install @qnpm/hysdk-fusion`

### 线上引用

对于一些时效性的活动和专题页面，可以直接通过线上地址引用资源进行使用。（正常项目须在项目中安装并与项目代码核心打包）

核心版:
> [http://q.qunarzz.com/hysdk/prd/hysdk@1.2.6.js](http://q.qunarzz.com/hysdk/prd/hysdk@1.2.6.js)

[Qunar插件](http://ued.qunar.com/hy2/hysdk/plugins.html#Qunar)：
> [http://q.qunarzz.com/hysdk/prd/plugins/hysdk.qunar@1.2.6.js](http://q.qunarzz.com/hysdk/prd/plugins/hysdk.qunar@1.2.6.js)

[Fusion插件](http://ued.qunar.com/hy2/hysdk/plugins.html#Fusion)：
> [http://q.qunarzz.com/hysdk/prd/plugins/hysdk.fusion@1.2.6.js](http://q.qunarzz.com/hysdk/prd/plugins/hysdk.fusion@1.2.6.js)


## 使用

### 配置

```
// 引入 HySDK
require('@qnpm/hysdk');
// 引入 插件
require('@qnpm/hysdk-fusion');

// 配置并初始化 （在使用HySDK前必须config）
hysdk.config({
    "debug": false, /* 调试开关 */
    "bridgeReadyEvent": "WebViewJavascriptBridgeReady", /* Hytive 桥 Ready 事件 */
    "bridgeReadyTimeout": 600, /* 桥 Ready 最大延迟 */
    "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 版本默认配置 */
});
```

### 调用

```
hysdk.getLocation({
    timeout: 5000,
    success: function() {
        // TODO Something
    },
    fail: function() {
        // TODO Something
    },
    complete: function() {
        // TODO Something
    }
});
```

更多 API 请参见 [API 文档](./api.html);

## 其他问题

### 扩展

HySDK 同时也提供了 `hysdk.ctrip.js` 与 `hysdk.webViewJavascriptBridge.js`，前者是提供给 Ctrip Lizard 框架使用的，后者是用于老业务（基于 QunarAPI 或者直接使用 webViewJavascriptBridge 的）适配 Ctrip 客户端的方案，在 Qunar Hy 方案中正常运行的项目，在前端代码最前面引入 `hysdk.webViewJavascriptBridge.js` 即可完成对 Ctrip 客户端的适配。如果想详细了解，请联系开发者。

### 微信签名服务

在这里特别呼谢 CallCenter 的同学，提供了 `//ccweixin.qunar.com/chat/getJsConfig.do` Qunar 公共的微信签名 API，使业务可以方便在微信内调用其 API。在 HySDK 已经默认配置了此接口，开发者的页面在微信浏览器里会使用 **去哪儿网** 公共号的权限调用微信 API。当然接口有域名限制，只有 `*.qunar.com` 域才可以。具体文档 [点击查看](http://wiki.corp.qunar.com/pages/viewpage.action?pageId=132528258)(内网)。

## 开发者信息

* 林洋 [adwon.lin@qunar.com](adwon.lin@qunar.com)
* 方昌权 [changquan.fang@qunar.com](changquan.fang@qunar.com)
