Tan*_*ker 5 reactjs react-native
我有一个需要用户允许该位置的应用程序。我正在测试应用程序的设备对此没有任何问题。但是,每当我使用其他设备时,都会显示以下错误:
这是我的代码:
componentDidMount() {
navigator.geolocation.getCurrentPosition((position) => {
let lat = parseFloat(position.coords.latitude)
let long = parseFloat(position.coords.longitude)
let initialRegion = {
latitude: lat,
longitude: long,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA
}
this.setState({ initialPosition: initialRegion })
this.setState({ markerPosition: initialRegion })
},
(error) => alert(JSON.stringify(error)),
{ enableHighAccuracy: true, timeout: 2000, maximumAge: 3600000 }
)
}Run Code Online (Sandbox Code Playgroud)
我试过了 { enableHighAccuracy: false, timeout: 2000 },但是显示了同样的错误。
根据您提供的代码,您尚未显示您正在请求访问权限的授权。
navigator.geolocation.requestAuthorization();在开始请求位置之前,您应该先打电话。
您还应确保已在AndroidManifest.xml和中设置了所需的权限Info.plist
您可以在这里查看文档https://facebook.github.io/react-native/docs/geolocation
Android API> = 23需要额外的步骤来检查并使用PermissionsAndroid API请求ACCESS_FINE_LOCATION权限 。否则可能会导致严重的崩溃。
你可以做这样的事情。
import { PermissionsAndroid } from 'react-native';
async function requestLocationPermission() {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
'title': 'Location Permission',
'message': 'This App needs access to your location ' +
'so we can know where you are.'
}
)
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log("You can use locations ")
} else {
console.log("Location permission denied")
}
} catch (err) {
console.warn(err)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2986 次 |
| 最近记录: |