JSSDK 对接说明
概述
H5微应用JSAPI为应用提供了调用原生控件的能力,帮助开发者高效使用拍照、定位等手机系统的能力,同时可以直接使用分享、扫一扫、选择云盘文件等蓝信特有的能力,带给微应用接近原生代码的体验。此文档面向开发者介绍蓝信JSAPI如何使用及相关注意事项。
准备工作
下载并使用最新版本的蓝信+客户端进行调试,调试网页需要在蓝信客户端内访问。
步骤一:HTML 引入 JS 文件
在 HTML 中使用 script 标签直接引入文件,并使用全局变量 lx。
<script src="path/to/app-jssdk.umd.min.js"></script>
步骤二:免登流程
获取端内登录态,并校验当前域名对于应用是否可信任。请查看免登流程。
需要保证当前网页 url 符合 [开发者中心] 中 可信域名 的配置;; 在本地调试时,可将本地项目 url 添加至可信域名中,如:http://localhost:8080 ,之后在应用上线前在可信域名中删除
lx.biz.getAuthCode({
appId: "String",
success: function (res) {
/**
{
authCode: 'String' //获取的免登授权码有效期5分钟,且只能使用一次
}
*/
},
fail: function (err) {},
});
步骤三:JSAPI 鉴权
所有需要使用 JS-SDK 的页面必须先注入配置信息,否则将无法调用,具体请查看JSAPI 鉴权。
同一个 url 仅需调用一次,不能调用多次,对于变化 url 的 SPA(single-page application)的 web app 可在每次 url 变化时进行调用
lx.config({
appId: '', // 必填,应用的唯一标识
timestamp: , // 必填,生成签名的10位时间戳,int型,单位:秒
nonceStr: '', // 必填,生成签名的随机串
signature: '' // 必填,签名
});
步骤四:通过 ready 接口处理成功验证
config 信息验证后会执行 ready 方法,所有接口调用都必须在 config 接口获得结果之后,config 是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在 ready 函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在 ready 函数中。
lx.ready(function () {
// 调用jsapi
});
步骤五:通过 error 接口处理失败验证
config 信息验证失败会执行 error 函数,如签名过期导致验证失败,具体错误信息可以通过VConsole查看,也可以在返回的 res 参数中查看。
lx.error(function (reason) {
// 处理错误
console.log(reason);
});
返回码说明:
| code | message | 说明 |
|---|---|---|
| 1001 | INVALID_URL_DOMAIN | 当前页面所在域名与使用的 appid 没有绑定 |
| 1002 | INVALID_SIGNATURE | 签名验证失败 |
| 1003 | UNKOWN_ERROR | 其他错误 |
JSAPI 调用说明
示例:
lx[接口分组][接口名称]({
param1,
param2,
complete: function (result) {
// TODO
},
trigger: function (result) {
// TODO
},
success: function (result) {
// TODO
},
fail: function (result) {
// TODO
},
});
回调函数说明:
| 回调函数 | 说明 |
|---|---|
| complete | 接口调用结束的回调函数(调用成功、失败都会执行) |
| trigger | 功能触发时的回调函数,如菜单点击等接口 |
| success | 接口调用成功的回调函数 |
| fail | 接口调用失败的回调函数 |
全局状态码说明
| code | message | 说明 |
|---|---|---|
| 0 | OK | 成功 |
| -1 | INVALID_REQUEST | 请求参数不合法, 如缺少必要字段等 |
| -2 | NOT_SUPPORTED | 所请求的 API 不存在 |
| -3 | SERVER_INTERNAL_ERROR | 服务端内部错误,如内部调用超时等 |
| -4 | PERMISSION_DENIED | 所请求的 API 未被授权 |
| -5 | DEPRECATED | 成功所请求的 API 已经被弃用 |
| -6 | CLIENT_INTERNAL_ERROR | 客户端内部错误,如没有设备权限等 |
| -7 | CANCEL | 取消当前操作 |
| -8 | NOT_EXIST | 访问对象不存在(按场景区别说明) |
客户端内调试应用网页
在 HTML 中使用 script 标签直接引入文件,参考VConsole
<script src="path/to/vconsole.min.js"></script>
<script>
// 初始化
var vConsole = new VConsole();
console.log("Hello world");
</script>