npm install toolchain-landingpage-web-sdk
var vlSDK = require('toolchain-landingpage-web-sdk')
// 或es6
import vlSDK from 'toolchain-landingpage-web-sdk'
// 本地也可以直接将 dist/vlSDK.js 或 vlSDK.min.js 拷贝到本地使用
// demo访问地址: http://localhost:3000
npm run demo
vlSDK.config({
// 必填系统申请的Key,需要针对landingpage设计appkey,
// 1. 可以通过config传入, 2. 可以通过<script type="text/javascript" src="https://xxxx.toolchain-landingpage-web-sdk?v=1.0&appkey=您的密钥"></script>输入
appKey: '888888',
// 是否 开启后端直传uuid,默认开启 开启后接口字段按新接口来
__isUUID: true,
// 不稳定参数,该参数不对外开放,仅供开发调试用,默认值为生产环境”https://v.vechain.com/v1/data“,如传入,则替换掉默认值。
__url: '',
// 不稳定参数,uuid 接口地址
__uuidsUrl: '',
// 自定义语言参数
lang: 'zh-CN'
// 是否缓存请求数据 默认false,
// true表示上次传送的数据会缓存在localStorage,如果为false,则会忽略缓存。
// 缓存key应该加上fields,因为每次获取的fields可能会不同。
cache: true,
//百度地图申请key,选填若不需要可为空 则不适用百度地图错误纠正位置数据,这个功能暂时不开放支持。
BMap: {
ak: key,
v: '2.0'
}
})
vlSDK.fetch({
// 必填 vid, 20bytes or 32bytes 0x[0~9a~fA~F]
vid: '0x****',
// 选填,fields的来源为根据,通过vlSDK.getFields() 获取DCP的模板列表(包括DCP的名称和uuid)。根据列表可以将列表全部传入,或者选择列表中元素传入。
// 1. 根据vlSDK.getFields()获取list来获取数据 2. 已知所有的DCPname和uuid的情况下hardcode在代码中 3. 通配符:'*'
fields: ['trackinfo'],
// 如果是芯片,在通过vechain chip auth sdk验真后会得到token,使用该token才能通过被sdk获取得到完整产品信息,否则只会获得sku信息。无法获取其他的信息。
// 在接口处为x-api-token
token: 'token',
// 芯片验真token
vidAccessToken: '223344' ,
// 如果是通过vechain work或者客制化toolchain前端页面部署系统,访问landingpage都需要带上token。该token为内部访问token,是登录账号的jwt
// 在接口处确认内部访问的token的header的名称:
internalAccessToken: ""
}).then(function(res){
console.log(res, 333)
}).catch(function(res){
console.log(res, 444)
})
vlSDK({
params: {
// 必填 vid
vid: '0x****',
// 选填,fields的来源为1. 通过vlSDK.getFields() 获取DCP的模板列表(包括DCP的名称和uuid)。根据列表可以将列表全部传入,或者选择列表中元素传入。
fields: ['trackinfo'], // Array(uuid), Array(name) Array(Object: 获取uuid 返回的数据)
// 如果是芯片,在通过vechain chip auth sdk验真后会得到token,使用该token才能通过被sdk获取得到完整产品信息,否则只会获得sku信息。无法获取其他的信息。
chipAuthToken: '223344' ,
// 如果是通过vechain work或者客制化toolchain前端页面部署系统,访问landingpage都需要带上token。该token为内部访问token,是登录账号的jwt
internalAccessToken: ""
},
// 成功回调
success: function(res){
console.log(res, 555)
},
// 请求失败回调
fail: function(res){
console.log(res, 666)
},
// 无论成功失败都回调 code: [200, 0, -1, -2]
callback: function(res){
}
})
// 查看当前版本号
vlSDK.version
// 获取landingpage引用DCP的list options options: String(vid) Object(){vid:vid} Array()[vid, vid] null(all) 若只有一个参数 这 options = callback
vlSDK.getUuids(options, callback) // vlSDK.getUuids(callback)
// 获取缓存数据 options: String(vid) Array()[vid, vid] null(all)
vlSDK.getCache(options)
// 清除vid数据缓存
vlSDK.clearCache()
// 清除本域名下所有缓存
vlSDK.clearAll()
// 可用于数据按需加载,返回promise
vlSDK.again(option)
NOTE:
again
中option
可接受参数为Null
,String
,Array
,Object
Null
: 按之前参数请求;String
: vid 值;Array
: fields (可选:['trackinfo', 'skuinfo', 'enbaseinfo', 'activityinfo']);Object
: {vid: vid, fields: []}
├── core: 主业务文件目录
├── again.js 再次请求业务模块
├── fetch.js landingpage 主业务请求
├── getUuids.js 获取uuid 数据
├── http.js 基础网络请求处理
├── vlSDK.js core 出口文件
├── helper: 业务辅助类方法
├── apiUrl.js 接口处理文件
├── callPro.js 调用app文件
├── getMessage.js 根据语言环境获取不同语言文本
├── getSysLang.js 获取合法语言(config中配置),用户指定查询系统语言,最终返回支持语言
├── ioCache.js 设计用来控制缓存输入输出(暂时没处理)
├── ioConfig.js 配置文件输入输出
├── setAddress.js 百度地图纠正位置信息方法
├── transform.js 数据处理/格式化方法集合
├── plugins: 插件类方法,需要安装,灵活引用
├── index.js 出口方法,用于组件挂载
├── BMap.js 百度地图组件
├── collecoter.js 用户信息收集组件
├── headers.js 设计用于初始化头部参数用(暂时未用)
├── popbar.js 小黄条组件
├── index.js 入口文件
├── utils.js 业务无关常用方法
├── lang.js 语言包
├── error.js 错误类方法
├── config.js 业务配置文件
├── config: 配置信息,包括sdk的配置和url的配置 ├── error:错误处理信息和error返回的code和msg ├── httpClient:http接口 ├── index.js: js入口 ├── lang: sdk用到的文字和语言 ├── utils: 工具类 ├── plugin: 插件类,如地图 ├── popbar: 小黄条显示及小黄条的 ├── collector: 客户端信息收集代码 ├── agreement: 免责声明