检测该区域中的所有信标并获取其数据(REACT NATIVE)
Detect All Beacons in the region and get its data ( REACT NATIVE )
祝你一切顺利。
我想检测在我范围内的信标。我得到了 react-native-beacons-manager 但它不起作用。
我有信标设备。我测试了,但运气不好。
根据此代码,它仅显示我在区域对象中传递的那些 UUID。
任何人都可以帮助我如何检测附近的信标。我从图书馆得到的代码是:
来源 link 是
我什么也没做,只是使用上面示例中的数据来控制数据 link。
我的密码是
componentWillMount() {
Beacons.requestAlwaysAuthorization();
const region = {
identifier: 'pBeacon_n',
uuid: '7BA5D5CE-C416-5FD6-8AAA-919D534E0DC3'
};
Beacons.startMonitoringForRegion(region) // or like < v1.0.7: .startRangingBeaconsInRegion(identifier, uuid)
.then(() => console.warn('Beacons monitoring started succesfully'))
.catch(error => console.warn(`Beacons monitoring not started, error: ${error}`));
// Range for beacons inside the region
Beacons.startRangingBeaconsInRegion(region) // or like < v1.0.7: .startRangingBeaconsInRegion(identifier, uuid)
.then(() => console.warn('Beacons ranging started succesfully'))
.catch(error => console.warn(`Beacons ranging not started, error: ${error}`));
// update location to ba able to monitor:
Beacons.startUpdatingLocation();
}
componentDidMount() {
this.beaconsDidRangeEvent = DeviceEventEmitter.addListener(
'beaconsDidRange',
(data) => {
console.warn('beaconsDidRange data: ', data);
}
);
}
我传递给该区域的 UUID 是我真正的 Beacon UUID。
谢谢。
不幸的是,iOS 根本不允许您在不指定 ProximityUUID 的情况下搜索 iBeacon 传输。此 ReactNative 模块使用的最低级别本机 API 具有此限制。 Apple 以这种方式实现它作为一种安全限制,以防止您扫描属于他人的信标。
像这样使用你可以检测所有信标而不用给出 uuid 等,但它在 ios 中不起作用。
startBeacon = () => {
Reactotron.log('else');
Beacons.detectIBeacons();
Beacons.detectAltBeacons();
Beacons.detectEstimotes();
Beacons.detectEddystoneUID();
Beacons.detectEddystoneTLM();
Beacons.detectEddystoneURL();
Beacons.startRangingBeaconsInRegion('REGION1')
.then((data) => {
Alert.alert('', `Beacons monitoring started!`);
})
.catch((error) => {
Alert.alert('', `Beacons start error!`);
});
DeviceEventEmitter.addListener('beaconsDidRange', (data) => {
if (data.beacons.length) {
this.setState({ detectedBeacons: data.beacons });
Alert.alert(`Found beacons!`, JSON.stringify(data.beacons));
}
});
}
祝你一切顺利。
我想检测在我范围内的信标。我得到了 react-native-beacons-manager 但它不起作用。
我有信标设备。我测试了,但运气不好。
根据此代码,它仅显示我在区域对象中传递的那些 UUID。
任何人都可以帮助我如何检测附近的信标。我从图书馆得到的代码是:
来源 link 是
我什么也没做,只是使用上面示例中的数据来控制数据 link。
我的密码是
componentWillMount() {
Beacons.requestAlwaysAuthorization();
const region = {
identifier: 'pBeacon_n',
uuid: '7BA5D5CE-C416-5FD6-8AAA-919D534E0DC3'
};
Beacons.startMonitoringForRegion(region) // or like < v1.0.7: .startRangingBeaconsInRegion(identifier, uuid)
.then(() => console.warn('Beacons monitoring started succesfully'))
.catch(error => console.warn(`Beacons monitoring not started, error: ${error}`));
// Range for beacons inside the region
Beacons.startRangingBeaconsInRegion(region) // or like < v1.0.7: .startRangingBeaconsInRegion(identifier, uuid)
.then(() => console.warn('Beacons ranging started succesfully'))
.catch(error => console.warn(`Beacons ranging not started, error: ${error}`));
// update location to ba able to monitor:
Beacons.startUpdatingLocation();
}
componentDidMount() {
this.beaconsDidRangeEvent = DeviceEventEmitter.addListener(
'beaconsDidRange',
(data) => {
console.warn('beaconsDidRange data: ', data);
}
);
}
我传递给该区域的 UUID 是我真正的 Beacon UUID。
谢谢。
不幸的是,iOS 根本不允许您在不指定 ProximityUUID 的情况下搜索 iBeacon 传输。此 ReactNative 模块使用的最低级别本机 API 具有此限制。 Apple 以这种方式实现它作为一种安全限制,以防止您扫描属于他人的信标。
像这样使用你可以检测所有信标而不用给出 uuid 等,但它在 ios 中不起作用。
startBeacon = () => {
Reactotron.log('else');
Beacons.detectIBeacons();
Beacons.detectAltBeacons();
Beacons.detectEstimotes();
Beacons.detectEddystoneUID();
Beacons.detectEddystoneTLM();
Beacons.detectEddystoneURL();
Beacons.startRangingBeaconsInRegion('REGION1')
.then((data) => {
Alert.alert('', `Beacons monitoring started!`);
})
.catch((error) => {
Alert.alert('', `Beacons start error!`);
});
DeviceEventEmitter.addListener('beaconsDidRange', (data) => {
if (data.beacons.length) {
this.setState({ detectedBeacons: data.beacons });
Alert.alert(`Found beacons!`, JSON.stringify(data.beacons));
}
});
}