Это связано с тем, что вам нужно вызвать ваш wifi.isEnabled
в вашем componentDidMount, а не в теле вашего класса.
Обновите свой компонент до:
export default class App extends Component{
componentDidMount() {
wifi.isEnabled((isEnabled)=>{
if (isEnabled){
console.log("wifi service enabled");
}else{
console.log("wifi service is disabled");
}
});
}
render() {
return (
<View style={styles.container}>
<Text>Welcome to React Native!</Text>
<Text>To get started, edit App.js</Text>
</View>
);
}
}
Глядя на репозиторий для response-native-android-wifi , есть несколько шагов, которые вам еще нужно сделать,
Для начала вам нужно запросить разрешение на доступ к локации.Итак, давайте сделаем это в componentDidMount
, поскольку это асинхронный запрос, нам нужно убедиться, что ваш componentDidMount
также является асинхронным.
Во-вторых, мы хотим выполнить проверку.Мы можем сделать это, привязав его к нажатию кнопки.
Нам также потребуется импортировать несколько вещей из react-native
, поскольку мы используем компонент Button и хотим запрашивать разрешения для Android.
import { Button, PermissionsAndroid } from 'react-native';
export default class App extends Component {
async componentDidMount () {
this.askForUserPermissions();
}
async askForUserPermissions () {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
'title': 'Wifi networks',
'message': 'We need your permission in order to find wifi networks'
}
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log('Thank you for your permission! :)');
} else {
console.log('You will not able to retrieve wifi available networks list');
}
} catch (err) {
console.warn(err);
}
}
checkWiFi () {
wifi.isEnabled((isEnabled) => {
if (isEnabled) {
console.log('wifi service enabled');
} else{
console.log('wifi service is disabled');
}
});
}
render () {
return (
<View style={styles.container}>
<Button title={'check wifi'} onPress={this.checkWiFi.bind(this)} />
<Text>Welcome to React Native!</Text>
<Text>To get started, edit App.js</Text>
</View>
);
}
}
Для получения более подробной информации о том, как это настроить, посмотрите на examples в репозитории, они показывают, как делать большинство вещей, которые вы, вероятно, захотите сделать.