主题
安装
JS-SDK
支持以script
标签及模块
的形式引入;初始化时,可对日志输出、数据模拟等进行配置。
引入及使用
基于npm
包的方式引入:
1、使用npm
或yarn
安装模块:
sh
npm install itb-js-sdk --save
# 使用 yarn
yarn add itb-js-sdk
2、安装成功后,使用es module
或commonjs
模块规范引入,支持全量及按模块引入:
js
// 全量引入
import * as itb from 'itb-js-sdk';
// 按模块引入
import auth from 'itb-js-sdk/auth';
3、引入模块后,可以通过调用初始化方法init
来修改默认配置:
js
itb.init({ debug: true, auth: false });
所有配置项,请看下方配置说明。
4、SDK 就绪后,将可调用各模块方法,所有接口均支持promise
及callback
的调用方式:
js
// Promise
itb.auth.getUserTicket().then(res => {
console.log(res.user_ticket);
}).catch();
// CallBack
itb.auth.getUserTicket({
success(res) {
console.log(res.user_ticket);
},
fail(err) {},
});
二、script
标签引入:
html
<!-- 以实际sdk访问地址为准 -->
<script src="./static/itb-js-sdk.1.0.0.js"></script>
<!-- sdk线上访问地址 -->
<script src="https://itb.tbea.com/docs/static/itb-js-sdk.1.0.1.js"></script>
引入后,会在全局暴露itb
对象,初始化后,将可调用各模块接口。
关于 JS-SDK 资源
基于 iTB 部分客户网络环境的特殊性,推荐自行部署js-sdk的相关资源,以供自家平台轻应用访问。 点击下载 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(itb, initOptions)
的方式初始化 sdk。
js
import { createApp } from 'vue' Vue from 'vue';
import * as itb from 'itb-js-sdk';
const app = createApp(App)
app.use(itb, { debug: true, timeout: 10 * 1000 })
接下来,可以在 Vue 组件内,直接访问this.$itb
对象,以调用 sdk 方法。
js
export default {
mounted() {
this.$itb.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="./itb-js-sdk.1.0.0.js"></script>
<script>
const App = {
data() {
return {
message: 'Hello Vue!!'
}
},
mounted() {
this.$itb.header.setTitle('JS-SDK VueJS Demo');
}
}
Vue.createApp(App).use(window.itb, { debug: true, timeout: 10 * 1000 }).mount('#app')
</script>
配置
可以通过itb.init
方法进行初始化参数设置,具体可设置参数如下:
js
itb.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
itb.init({
// 启用 Mock 服务
mock: true
mockData: {
// 服务类名
auth: {
// 具体执行方法的回调
getUserTicket() {
return { user_ticket: 'testmock' };
}
}
}
});
itb.auth.getUserTicket().then(res => {
console.log(res.user_ticket); // testmock
});
错误信息
js-sdk 在调用失败会触发 error 函数,错误信息可在返回的 error 参数中参看,下面为示例:
js
itb.error(function(error){
alert('sdk error: ' + JSON.stringify(error));
});