Skip to content

微信小程序集成API

1、小程序开发设置

1.1 服务器域名

request合法域名:
    https://a.brtmap.com;
    https://files.brtmap.com;
    https://map-sdk.brtmap.com;
    https://wx-lts-pull.brtmap.com;

2、下载小程序端 - JS-SDK

下载 brtloc.miniprogram.js 下载到本地后放到您自己小程序项目里面

.

3、开始使用

定位方式:
// 服务器中转模式
1. http: 小程序端扫描ibeacon信息  ----> 服务器(中转)  ---->  H5定位

// 哈希无刷新模式
2. hash: 小程序端扫描ibeacon信息 ---->  url hash无刷新 ----> H5定位

3.1 引入SDK

javascript
// 引入sdk
const brtloc = require('/brtloc.miniprogram.js');

3.2 创建实例

javascript
// 用户唯一定位ID  (建议使用openId)
let userId = brtloc.RandomUserId();
// 您的建筑ID
let buildingID = '';
// 建筑token
let token = '';

// 实例
let $locate = new brtloc.Location({
    userId,
    wechatMode: "hash",
    buildingID,
    token
});

3.3 ibeacon扫描

javascript
// ready
$locate.on('ready', () => {
    
    // 开启内置ibeacon扫描功能
    $locate.openBeaconScanning(res => {
        console.log('beacons', res.beacons);
    });
    
    
    // 小程序原生集成方式
    
    /*// 监听扫描ibeacon
    wx.onBeaconUpdate(res => {
        // 分析beacons, 计算定位点
        $locate.beaconAnalysis(res.beacons);
    });

    //开启 ibeacon扫描
    wx.startBeaconDiscovery({
        uuids: $locate.uuids, // $locate.uuids 是智石默认的uuids  请及时修改。
        success: res => {}
    });*/
    
});

3.4 监听定位点

javascript
// 计算后的定位点
$locate.on('location', point => {
	console.log('point', point);
});

3.5 完整示例

.wxml

javascript
<web-view src="{{url}}{{beaconsHashString}}"></web-view>

.js

javascript
//index.js
//获取应用实例
const app = getApp();
// 引入sdk
const brtloc = require('/brtloc.miniprogram.js');

// 您的建筑ID
const buildingID = '';
// 有效token
const token = '';
// 用户唯一定位ID  (建议使用openId)
let userId = brtloc.RandomUserId();

Page({
    data: {
        // H5项目地址
        url: '//127.0.0.1:8080/demo.html',
        // 利用hash变化 无刷新传给H5的beacons字符串
        beaconsHashString: ''
    },
    onLoad: function () {

        // 实例
        let $locate = new brtloc.Location({
            userId,
            wechatType: "hash",
            buildingID,
            token
        });

        // ready
        $locate.on('ready', () => {
            
            // 开启内置ibeacon扫描功能
            $locate.openBeaconScanning(res => {
                console.log('beacons', res.beacons);
            });

        });

        // 监听 扫描 分析后有效的beacons
        $locate.on('beacons', beacons => {
            this.setData({
                beaconsHashString: '#' + beacons.toHashString()
            });
        });

    }
})

4、API

4.1 brtloc

NameTypeDescription
LocationFunction定位实例化
RandomUserIdFunction分配的随机userId

Location

javascript
new brtloc.Loaction(options:object);

RandomUserId

javascript
// 随机一个字符串
brtloc.RandomUserId();

4.2 Parameters -> Options

NameTypeDefaultDescription
userIdStringnull用户唯一标识ID (当与H5集成时必填)
buildingIDStringnull地图建筑ID
tokenStringnull地图有效token
wechatModeStringhash定位模式 (hash
uuidsArray[]iBeacon的uuid
minRssiNumber-88限制beacon信号最小值
maxRssiNumber-15限制beacon信号最大值
maxCountNumber12最大有效beacon数
floorDelayNumber2000楼层切换延迟 (毫秒)
statisticsBooleantrue大数据统计
debugBooleanfalse调式 日志打印

4.3 Instance Members

NameDescription
beaconAnalysis(beacons)分析扫描的beacons
openBeaconScanning()开启内置ibeacon扫描功能
rebootBeaconScanning()重启内置ibeacon扫描功能
reset()重置
destroy()销毁
on(type, function)监听
once(type, function)只监听一次
off(type, function)移除监听

4.4 Events

NameDescription
ready准备完毕
location实时定位点
beacons分析后的有效beacons