ios - 如何使用 Xamarin 表单在 iOS 中设置 GPS 位置确认弹出窗口的间隔时间

标签 ios forms xamarin gps location

我是 Xamarin 表单的新手,我在应用程序中使用 GPS 位置,并且我确实设置了 访问 iOS 的 info.plist 文件中的 GPS 位置代码。 下面的代码中提到我确实使用过。 NSLocationWhenInUseUsageDescription 您即将使用位置信息! NSLocationAlwaysUsageDescription 如果在幕后使用位置,则会调用此函数 当我打开应用程序时,会显示确认弹出窗口,但显示的持续时间为 2-3 秒,我无法允许 GPS 确认,因此在这种情况下,我的应用程序崩溃了。如何在确认弹出窗口中设置间隔时间,请提出建议我为此做了什么。

最佳答案

在 iOS 11.0 之后,我们最好在 info.plist 中添加新的描述 NSLocationAlwaysAndWhenInUseUsageDescription 。 iOS中的间隔时间是由系统定义的,无法自定义。但我们可以提前请求许可。

对于 Xamarin.Forms 中的权限,您可以使用插件 Plugin.Permissions

用法

try
{
    PermissionStatus status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Location);
    if (status != PermissionStatus.Granted)
    {
       if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Location))
       {
          await DisplayAlert("Need location", "app need that location", "OK");
       }

       Dictionary<Permission,PermissionStatus> result = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Location);
    }

    if (status == PermissionStatus.Granted)
    {
        //Query permission
    }

    else if (status != PermissionStatus.Unknown)
    {
      //location denied
    }
}
catch (Exception ex)
{
    //Something went wrong
}

您可以在应用的MainPage中调用上述代码。

关于ios - 如何使用 Xamarin 表单在 iOS 中设置 GPS 位置确认弹出窗口的间隔时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59369085/

相关文章:

iphone - 如何在矩形中填充一条线

ios - 当 UINavigationController 出现在 UIPopoverController 中时 UIBarButtonItem 被截断

ios - 更改containerView swift中的可见 View Controller

c# - 将包含复杂类型数组的复杂类型传递给 Web API

c# - Form.Closing 未列为表单事件?

xamarin - 如何反编译我的 appconfig.json

ios - Swift:如果是正斜杠,则从字符串中删除最后一个字符

Django 预填表格

android - 如何授予xamarin相机权限

c# - 在 Pin Map 控件 Xamarin 表单 pcl 上调用单击事件