React Native-在加载地图之前在初始屏幕中显示权限

时间:2018-10-21 03:47:07

标签: react-native permissions geolocation splash-screen react-native-maps

我想在加载地图之前在启动画面中显示权限。 这是我在代码中得到的结果。打开应用程序,它会显示“启动画面”,然后在我启用GPS的同时加载“权限和地图”之后,getCurrentPosition将不会在地图中执行。

我想要的结果是在“初始屏幕”中时,它将在加载地图之前显示权限,因此将执行getCurrentPosition。

我尝试了一些代码,但是没有任何效果。先感谢您!祝你有美好的一天。

这是我的代码:

componentDidMount(){
    this.requestLocationPermission()
    this.getUserLocationHandler()
    SplashScreen.hide()
}

getUserLocationHandler = () => {
    Geolocation.getCurrentPosition(
        position => {
            this.setState({
                userLocation: {
                    latitude: position.coords.latitude,
                    longitude: position.coords.longitude,
                    latitudeDelta: 0.0043,
                    longitudeDelta: 0.0104,
                },
            });
        },
        err => console.log(err.code, err.message)
    );
};

requestLocationPermission = () => {
    try {
        const granted = PermissionsAndroid.request(
            PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
            {
                title: 'Location Permission',
                message: 'You must to accept this to make it work.'
            }
        )
        if (granted === PermissionsAndroid.RESULTS.GRANTED) {
            console.log("Permission accepted")
        } else {
            console.log("Permission Denied.")
        }
    } catch (err) {
        console.warn(err)
    }
}

render() {
    return(
        <View style={styles.container}>
            <StatusBar backgroundColor='transparent' translucent={true} />
            <MapView userLocation={this.state.userLocation} />
        </View>
    );
}
}

0 个答案:

没有答案