Skip to content

安装

JS-SDK支持以script标签及模块的形式引入;初始化时,可对日志输出、数据模拟等进行配置。

引入及使用

基于npm包的方式引入:

1、使用npmyarn安装模块:

sh
npm install @w6s/sdk --save

# 使用 yarn 
yarn add @w6s/sdk

2、安装成功后,使用es modulecommonjs模块规范引入,支持全量及按模块引入:

js
// 全量引入
import * as w6s from '@w6s/sdk';

// 按模块引入
import auth from '@w6s/sdk/auth';

3、引入模块后,可以通过调用初始化方法init来修改默认配置:

js
w6s.init({ debug: true, auth: false });

所有配置项,请看下方配置说明

4、SDK 就绪后,将可调用各模块方法,所有接口均支持promisecallback的调用方式:

js
// Promise
w6s.auth.getUserTicket().then(res => {
  console.log(res.user_ticket); 
}).catch();

// CallBack
w6s.auth.getUserTicket({
  success(res) {
    console.log(res.user_ticket); 
  },
  fail(err) {},
});

二、script标签引入:

html
<!-- 文档上的 sdk 地址更新可能会滞后 -->
<!-- 具体请以 https://www.npmjs.com/package/@w6s/sdk 地址上的最新版本为准 -->
<!-- 可以通过替换版本号(sdk.{版本号}.js),访问对应的版本 -->
<script src="https://open.workplus.io/static/js-sdk/sdk.2.0.3.js"></script>

引入后,会在全局暴露w6s对象,初始化后,将可调用各模块接口。

关于 JS-SDK 资源

基于 WorkPlus 部分客户网络环境的特殊性,推荐自行部署js-sdk的相关资源,以供自家平台轻应用访问。

JS-API 鉴权

为了保证 JS-SDK 的调用者是可信任的,同时对当前页面可用的 API 进行安全限制,防止恶意网页通过 JS-API 随意获取用户私密信息,对用户财产造成损失。因此在部分 JS-API 在被调用前,需要通过接口进行鉴权,只有鉴权成功的情况下,JS-API 的调用才会正常生效。

更多 JS-API 鉴权的信息,请查看鉴权流程

配合 Vue 使用

js-sdk 兼容 Vue 3.0 及 2.0 版本,使用方式大致一样,下面以 3 版本为例。

一、npm 模式:

基于 vite 创建的项目,可以通过app.use(w6s, initOptions)的方式初始化 sdk。

js
import { createApp } from 'vue' Vue from 'vue';
import * as w6s from '@w6s/sdk';

const app = createApp(App)
app.use(w6s, { debug: true, timeout: 10 * 1000 })

接下来,可以在 Vue 组件内,直接访问this.$w6s对象,以调用 sdk 方法。

js
export default {
  mounted() {
    this.$w6s.header.setTitle('JS-SDK VueJS Demo');
  },
}

二、script 标签模式:

除此之外,sdk 还支持以 script 标签引入的方式,结合 vue 进行使用,如下:

html
<script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
<!-- 以实际sdk访问地址为准 -->
<script src="./sdk.2.0.3.js"></script>
<script>
 const App = {
      data() {
        return {
          message: 'Hello Vue!!'
        }
      },
      mounted() {
        this.$w6s.header.setTitle('JS-SDK VueJS Demo');
      }
}
Vue.createApp(App).use(window.w6s, { debug: true, timeout: 10 * 1000 }).mount('#app')
</script>

配置

可以通过w6s.init方法进行初始化参数设置,具体可设置参数如下:

js
w6s.init({
  // 是否开启调试模式
  debug: true,

  // 是否开启鉴权模式
  auth: false,
  
  // 接口超时时间,单位毫秒
  timeout: 5000,

  // 是否开启接口数据模拟功能
  mock: false,

  // Mock 数据 
  mockData: {},
});

参数说明:

debug

默认为 false。开启后,将会在控制台打印调用接口的相关信息。

auth

默认为 false。开启后,初始化逻辑会有所不同,同时鉴权能力需要客户端及后端参与,一旦开启,所有接口均需要成功鉴权后才可使用(除鉴权接口本身)。

timeout

接口调用超时设置,毫秒数,默认为 5 秒。

部分接口不受该参数影响,例如选择照片。任何有原生页面弹出或没有回调的方法,timeout 将不生效。

mock

开启 js-sdk 接口的数据模拟功能,该开关可通过process.env.NODE_ENV环境变量来控制。

mockData

接口的模拟数据定义,格式如下:

js
w6s.init({
  // 启用 Mock 服务
  mock: true                      
  mockData: {     
    // 服务类名                
    auth: {         
      // 具体执行方法的回调              
      getUserTicket() {           
        return { user_ticket: 'testmock' };
      }
    }
  }
});

w6s.auth.getUserTicket().then(res => {
  console.log(res.user_ticket);   // testmock
});

错误信息

js-sdk 在调用失败会触发 error 函数,错误信息可在返回的 error 参数中参看,下面为示例:

js
w6s.error(function(error){
  alert('sdk error: ' + JSON.stringify(error));
});