1 蓝信JS-SDK接口概述

蓝信JS-SDK是蓝信开放平台面向网页开发者提供的基于蓝信内的网页开发工具包。通过使用蓝信JS-SDK,网页开发者可借助蓝信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用群组共享、投票、通知、活动等蓝信特有的能力,为蓝信用户提供更优质的网页体验。

在使用蓝信JS-SDK对应的JS接口前,需确保公众号已获得使用对应JS接口的权限,可登录蓝信开放平台查看对应的接口权限。

注意:所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录蓝信开放平台进入“公众号设置”》“功能设置”里填写“JS接口安全域名”。

步骤一:绑定域名

先登陆蓝信开放平台进入“公号管理”里填写“JS验证域名”。

步骤二:引入JS文件

在需要调用JS接口的页面(如http://ip:端口/js/jlanxin-1.0.0.js)引入JS文件,(支持https):

步骤三:通过config接口注入权限验证配置

所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用)。

lx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来。
    appId: '', // 必填,公众号的唯一标识
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名
    jsApiList: [] // 必填,需要使用的JS接口列表
});
步骤四:通过ready接口处理成功验证
lx.ready(function(){
    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
步骤五:通过error接口处理失败验证
lx.error(function(res){
    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看。
});
接口调用说明
所有接口通过lx对象(也可使用wx对象)来调用,参数是一个对象,除了每个接口本身需要传的参数之外,还有以下通用参数:

1. success:接口调用成功时执行的回调函数。

2. fail:接口调用失败时执行的回调函数。

3. complete:接口调用完成时执行的回调函数,无论成功或失败都会执行。

4. cancel:用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。

5. trigger: 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。

以上几个函数都带有一个参数,类型为对象,其中除了每个接口本身返回的数据之外,还有一个通用属性errMsg,其值格式如下:

1. 调用成功时:"xxx:ok" ,其中xxx为调用的接口名

2. 用户取消时:"xxx:cancel",其中xxx为调用的接口名

3. 调用失败时:其值为具体错误信息

注意:现有版本没有实现权限验证部分的内容,只要引用了蓝信的jssdk文件,全部接口都可调用。

2 基础接口

lx.checkJsApi({
    jsApiList: ['chooseImage'], // 需要检测的JS接口列表,所有JS接口列表见附录1,
    success: function(res) {
        // 以键值对的形式返回,可用的api值true,不可用为false
        // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
    }
});
Jssdk内部做判断,无需显式调用

3 分享接口

lx.onMenuShareAppMessage({
    title: '', // 分享标题
    desc: '', // 分享描述
    link: '', // 分享链接
    imgUrl: '', // 分享图标
    type: '', // 分享类型,music、video或link,不填默认为link
    dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
    success: function () {
        // 用户确认分享后执行的回调函数
    },
    cancel: function () {
        // 用户取消分享后执行的回调函数
    }
});
lx.onMenuShareMail({
    title: '', // 分享标题
    desc: '', // 分享描述
    link: '', // 分享链接
    attachments:'',//附件
    success: function () {
       // 用户确认分享后执行的回调函数
    },
    cancel: function () {
       // 用户取消分享后执行的回调函数
    }
});

4 图像接口

lx.chooseImage({
    count: 1, // 默认9
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
    success: function (res) {
        var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
    }
});
接口说明:

类似微信选择图片,弹出选择图片的界面,用户可以选择拍摄照片,也可以从手机相册中选择图片,默认显示全部图片,也可以选择图片、本地照片、截屏图片。支持多选(最多选择9张),选择的图片数量在右上角显示,比如(完成2/9)。另外,可以对选择的照片进行预览。

lx.previewImage({
    current: '', // 当前显示图片的http链接
    urls: [] // 需要预览的图片http链接列表
});
接口说明:

预览urls中指定的三张图片,默认当前显示的为current指定的第二张照片。

lx.uploadImage({
    localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得
    isShowProgressTips: 1, // 默认为1,显示进度提示
    success: function (res) {
        var serverId = res.serverId; // 返回图片的服务器端ID
    }
});
接口说明:

lx.downloadImage({
    serverId: '', // 需要下载的图片的服务器端ID,由uploadImage接口获得
    isShowProgressTips: 1, // 默认为1,显示进度提示
    success: function (res) {
        var localId = res.localId; // 返回图片下载后的本地ID
    }
});
接口说明:

5 音频接口

lx.startRecord();
接口说明:

lx.stopRecord({
    success: function (res) {
        var localId = res.localId;
    }
});
接口说明:

lx.onVoiceRecordEnd({
    // 录音时间超过一分钟没有停止的时候会执行 complete 回调
    complete: function (res) {
        var localId = res.localId;
    }
});
接口说明:

lx.playVoice({
    localId: '' // 需要播放的音频的本地ID,由stopRecord接口获得
});
接口说明:

lx.pauseVoice({
    localId: '' // 需要暂停的音频的本地ID,由stopRecord接口获得
});
接口说明:

lx.stopVoice({
    localId: '' // 需要停止的音频的本地ID,由stopRecord接口获得
});
接口说明:

lx.onVoicePlayEnd({
    success: function (res) {
        var localId = res.localId; // 返回音频的本地ID
    }
});
接口说明:

lx.uploadVoice({
    localId: '', // 需要上传的音频的本地ID,由stopRecord接口获得
    isShowProgressTips: 1, // 默认为1,显示进度提示
        success: function (res) {
        var serverId = res.serverId; // 返回音频的服务器端ID
    }
});
接口说明:

备注:此处获得的 serverId 即 media_id。

lx.downloadVoice({
    serverId: '', // 需要下载的音频的服务器端ID,由uploadVoice接口获得
    isShowProgressTips: 1, // 默认为1,显示进度提示
    success: function (res) {
        var localId = res.localId; // 返回音频的本地ID
    }
});
接口说明:

6 地理位置接口

lx.openLocation({
    latitude: 0, // 纬度,浮点数,范围为90 ~ -90
    longitude: 0, // 经度,浮点数,范围为180 ~ -180。
    name: '', // 位置名
    address: '', // 地址详情说明
    scale: 1, // 地图缩放级别,整形值,范围从1~28。默认为最大
    infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转
});
接口说明:

lx.getLocation({
    type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
    success: function (res) {
        var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
        var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
        var speed = res.speed; // 速度,以米/每秒计
        var accuracy = res.accuracy; // 位置精度
    }
});
接口说明:

7 界面操作接口

lx.hideOptionMenu();
接口说明:

lx.showOptionMenu();
接口说明:

lx.closeWindow();
接口说明:

lx.hideMenuItems({
    menuList: [] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录2
});
接口说明:

lx.showMenuItems({
    menuList: [] // 要显示的菜单项,所有menu项见附录2
});
接口说明:

lx.hideAllNonBaseMenuItem();
// “基本类”按钮详见附录2
接口说明:

lx.showAllNonBaseMenuItem();
接口说明:

8 蓝信扫一扫

lx.scanQRCode({
    needResult: 0, // 默认为0,扫描结果由蓝信处理,1则直接返回扫描结果,
    scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
    success: function (res) {
        var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
    }
});
接口说明:

9 文件接口

lx.chooseFile({
    success: function (res) {
        var localId = res.localId; // 返回选定文件的本地ID
    }
});
接口说明:

首先弹出选择本地资源库的界面,用户可以从图库、文件管理、录音机、音乐、Office等目录中选择文件。之后用户从所选资源库中选择文件,并返回文件本地ID。

lx.uploadFile({
    localId: '', // 需要上传的文件的本地ID,由chooseFile接口获得
    isShowProgressTips: 1// 默认为1,显示进度提示
    success: function (res) {
        var serverId = res.serverId; // 返回文件的服务器端ID
    }
});
接口说明:

上传之前,需先调用chooseFile接口选择文件。只支持单文件上传,即上传最新选择的文件。上传过程中默认提示上传进度。

lx.downloadFile({
    serverId: '', // 需要下载的文件的服务器端ID,由uploadFile接口获得
    isShowProgressTips: 1// 默认为1,显示进度提示
    success: function (res) {
        var localId = res.localId; // 返回文件下载后的本地ID
    }
});
接口说明:

下载之前,需先调用uploadFile接口上传文件。只支持单文件下载,即下载最新上传的文件。下载过程中默认提示上传进度。

10 选人接口

lx.chooseReceiver({
    maxCount : 5, // 最大选人数
    pickBuddyFlag : 0x01,// 0x01 :常用联系人; 0x02 :组织通讯录
    success: function (res) {
        //res 为选好的人员信息列表
    }
});
res格式
[{ type:0/1 //0:成员,1分支
  userUniId:'',//用户统一id或分支id
  photoResId:‘’//用户头像
  name:‘’//用户名称或分支名称},
  companyId:'' //分支Id(组织ID)
  ...]
接口说明:
注意: (当返回的数据中某个字段的值为null时,该key-value在报文中不显示)

11 蓝信使

lx.registerMenu({
    menuItem: 'send' ,   // 自定义按钮ID
    style: 'icon/text' // 样式是图标或文本,目前仅支持转发图标,内置在客户端中
    menuName: '发送/transfer' ,  //自定义按钮名称,转发时固定值为transfer
    success: function () {
        //自定义菜单点击时执行的函数体,菜单事件
    }
});
接口说明:

该接口为用户提供了自定义右上角菜单项的功能,通过该接口注册菜单之后,jssdk会通知客户端去创建相应的菜单,同时为菜单绑定事件。当点击菜单时触发菜单事件。

客户端点击菜单时调用如下方法
LanxinJSBridge._handleMenuFromNative({
    menuItem : 'send',             
    menuName :'发送',
    status :'success'
})

参考11.1菜单注册,通过lx.registerMenu注册发送事件,并在回调函数的方法体内实现发送的代码即可。

lx.registerMenu({
    menuItem: 'send' ,   // ID
    style: 'text',
    menuName: '发送' ,  //名称
    success: function () {
        //发送代码
    }
});

参考11.1菜单注册,通过lx.registerMenu注册发送事件,并在回调函数的方法体内实现发送的代码即可。

lx.registerMenu({
    menuItem: 'send' ,   // ID
    style: 'icon',   //
    menuName: 'transfer' ,  //
    success: function () {
        //转发代码
    }
});

参考11.1菜单注册,通过lx.transferMess注册发送事件,并在回调函数的方法体内实现发送的代码即可。

lx.transferMess({
    type : 'url', //蓝邮件为url,蓝通知为nitify
    url : 'http://api.lanxin.cn', //要转发的url地址
    title: '转发通知',
    summary:'下午开会',
    img:'http://xxx',
    menu:[1,2,3,4,5],//要显示的菜单项,此项不填默认为“分享给联系人”
    success : function(res) {//转发成功后的回调
    alert('转发成功');
    }
});
注:

menu项取值:1.分享给联系人;2,保存到我的文档3.邮件导出4.用其他程序导出5.复制链接

type取值:1,url:蓝信使。2,notify:蓝通知

12 蓝名片

lx.showBlueCard({
    mobile: 13612345678 ,   // 手机号
    userUniId: '83124@34.uni1' // ueruniid
    success: function () {
        //回调
    }
});
接口说明:

客户端收到请求后根据mobile或者userUniId展示蓝名片

lx.openChat ({
    dialogId: '83124@34.uni1' //
    success: function () {
        //打开会话
    }
});
接口说明:

客户端收到请求后根据dialogId打开会话

13 页面注册事件,native执行

lx.registerAction({
    actionItem: 'send' ,   // 自定义事件ID
    actionName: '发送/transfer' ,  //自定义按钮名称,转发时固定值为transfer
    success: function () {
        //自定义事件
    }
});
接口说明:

该接口为用户提供了自定义事件功能,通过该接口注册事件之后,jssdk会通知客户端。客户端会去触发该事件。

客户端调用如下方法
LanxinJSBridge._dispatchMessageFromNative(JSON.stringify({
    handlerName : 'send',//必填,识别码
    data : '',//可选,方法有参数时需传
    callbackId : 'xxxxx', //可选,有回调时填上此参数
}));

14 获取设备信息

lx.wifiDeviceInfo({
    success : function(res) {
        alert('ssid:'+res.ssid+"  bssid:"+res.bssid+"  essid:"+res.essid);
    },
    fail : function(res) {
        alert('获取wifi设备信息失败');
    }
});
接口说明:

该接口为用户提供了获取wifi设备信息的功能。

注意:返回的数据中三个字段都有可能为null,当值为null时不在返回json的报文中。
lx.bluetoothDeviceInfo({
    success : function(res) {
        alert('mac:'+res.mac+"  name:"+res.name);
    },
    fail : function(res) {
        alert('获取蓝牙设备信息失败');
    }
});
接口说明:

该接口为用户提供了获取蓝牙设备信息的功能。

注意:返回的数据中两个字段都有可能为null,当值为null时不在返回json的报文中。
©  2012  wqapp.cn  京ICP证100983号京ICP备12003277号-1|服务条款|隐私政策