首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GetPositionAsync在android中工作,但在IOS 11中不工作。

GetPositionAsync在android中工作,但在IOS 11中不工作。
EN

Stack Overflow用户
提问于 2017-11-05 19:56:31
回答 1查看 489关注 0票数 1
代码语言:javascript
复制
System.Threading.Tasks.TaskCanceledException: A task was canceled.

2017-11-05 14:46:31.228 Project.iOS[36807:4480015] 
Unhandled Exception:
System.Threading.Tasks.TaskCanceledException: A task was canceled.
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00020] in /Library/Frameworks/Xamarin.iOS.framework/Versions/11.2.0.11/src/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:179 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in /Library/Frameworks/Xamarin.iOS.framework/Versions/11.2.0.11/src/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in /Library/Frameworks/Xamarin.iOS.framework/Versions/11.2.0.11/src/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 
  at System.Runtime.CompilerServices.TaskAwaiter`

当我尝试在ios.11仿真器上调试时,我很难处理以下代码引发的异常,但是这段代码在android中工作得很好。

代码语言:javascript
复制
private async Task<Plugin.Geolocator.Abstractions.Position> GetPositionAsync() {
            var locator = CrossGeolocator.Current;
            locator.DesiredAccuracy = 50;
            TimeSpan ts = new TimeSpan((Int32)10000);
            _position = await locator.GetPositionAsync(timeout: ts);
            return _position;
        } 

我遵循了所有在各种网站上提到的有关@jamesmontemagno/ related . various /Geolocator/但没有运气的说明。我已经确保了我的info.plist由以下代码组成:

代码语言:javascript
复制
  <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
  <string>This app needs access location when open and in the background.</string>
  <key>NSLocationAlwaysUsageDescription</key>
  <string>Need location for geolocator plugin.</string>
  <key>RequestWhenInUseAuthorization</key>
  <string>Need location for geolocator plugin.</string>
  <key>NSLocationWhenInUseUsageDescription</key>
  <string>Need location for geolocator plugin.</string> 

我所要做的就是通过Xamarin.Froms在这三个平台(IOS、Android )上获得当前的位置。Android运行得很好,但IOS是我陷入困境的地方。任何类型的帮助都会受到感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-07 09:14:05

通过与官方示例的比较,我发现问题是您设置的timeout参数太短,无法完成任务,所以每次都会取消。

解决办法:

代码语言:javascript
复制
await locator.GetPositionAsync(TimeSpan.FromSeconds(10));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47125984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档