首页 > 解决方案 > 用户的定位在 React Native App 中没有呈现

问题描述

我在 2 天内一直在处理这个错误,但仍然找不到解决方案。所以我决定把它贴在 Stack Overflow 上。顺便说一句,我正在使用 android 版本为 8.1 的物理设备

这是我在控制台中遇到的错误:

"console.error:{TIMEOUT':3,"POSITION_UNAVAILABLE":2,"PERMISSION_DENIED":1,"message":"位置请求超时","code":3}

这是代码:

state = {
        focusedLocation: {
            latitude: 37.7900352,
            longitude: -122.4013726,
            latitudeDelta: 0.0122,
            longitudeDelta: (Dimensions.get('window').width / Dimensions.get('window').height) * 0.0122,
        },
        //this is for the marker location
        locationChosen: false,
    };

getUserLocationHandler = () => {
        navigator.geolocation.getCurrentPosition(
            pos => {
                const coordsEvent = {
                    nativeEvent: {
                        coordinate: {
                            latitude: pos.coords.latitude,
                            longitude: pos.coords.longitude,
                        },
                    },
                };
                this.pickLocationHandler(coordsEvent);
            },
            err => {
                console.log(err);
                alert('Tangina mo bobo');
            },
            {
                enableHighAccuracy: true,
                timeout: 10000,
                maximumAge: 0,
            }
        );
    }


render() {
        let marker = null;
        if (this.state.locationChosen) {
            marker = <MapView.Marker coordinate={this.state.focusedLocation} />;
        }
        return (
            <View style={styles.container}>
                <MapView
                    initialRegion={this.state.focusedLocation}
                    style={styles.map}
                    onPress={this.pickLocationHandler}
                    ref={ref => (this.map = ref)}
                >
                    {marker}
                </MapView>
                <View style={styles.button}>
                    <Button title="Locate me!" onPress={this.getUserLocationHandler} />
                </View>
            </View>
        );
    }

这些是我在 Android Manifest 中的许可:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

随意询问您是否想要一些代码或任何东西来检查。

标签: javascriptandroidgoogle-mapsreact-nativecurrentlocation

解决方案


推荐阅读