您好我尝试按照youtube上的教程,了解如果用户未启用位置服务,如何让应用程序打开位置设置。然而,在他的电脑上,它正在工作(他正在使用Android模拟器)我的Iphone XS(我相信在最新的IOS版本上工作)没有做任何事情。
我试图在互联网上打开设置甚至链接,但它不起作用
openSetting = () => {
if(Platform.OS=='ios'){
Linking.openURL('app-settings:')
}
else{
IntentLauncherAndroid.startActivityAsync(
IntentLauncherAndroid.ACTION_LOCATION_SOURCE_SETTINGS
);
}
this.setState({openSetting:false});
}
<Button onPress={() => this.setState({isLocationModalVisible:false, openSetting:true})}
title ="Enable Location Services"/>
我想你只需要调用它的功能。我检查了你的代码,它在两个平台上都运行良好
<Button onPress={() => this.openSetting()} title ="Enable Location Services"/>
同时调用setState
<Button onPress={() => {this.openSetting();
this.setState({isLocationModalVisible:false, openSetting:true})}}
哦,是的,现在工作得很好,非常感谢!但是我现在还有另外一个问题,当我去设置切换位置权限从永远不会永远,我回到应用程序它告诉我“经验需要权限”,即使我说允许屏幕不更新的位置它一直显示我的错误消息的信息是“访问位置的权限被拒绝” 我添加了Appstate我设置了appState:AppState.currentState(我基本上遵循了本机文档的反应)
appState: AppState.currentState
handleAppStateChange = nextAppState => {
if(this.state.appState.match(/inactive|background/) && nextAppState === 'active'){
console.log('App has come to the foreground');
this._getLocationAsync();
}
this.setState({appState : nextAppState});
};
它看起来像我得到的位置,因为如果我刷新应用程序它显示我的位置coords但我必须刷新它。它不会自动更改。但是现在,如果我将位置从始终切换回从不会自动更新到权限,并再次显示模式。