我正在尝试使用 Xamarin.iOS 为 MapboxSDK v10 设置自己的拦截器实例。
public class MyMBXHttpServiceInterceptor : IMBXHttpServiceInterceptorInterface
{
public IntPtr Handle { get; set; } = IntPtr.Zero;
public string Token { get; set; }
public void Dispose()
{
}
public MBXDownloadOptions OnDownloadForDownload(MBXDownloadOptions download)
{
return download;
}
public MBXHttpRequest OnRequestForRequest(MBXHttpRequest request)
{
request.Headers["TOKEN"] = new NSString("myToken");
return request;
}
public MBXHttpResponse OnResponseForResponse(MBXHttpResponse response)
{
return response;
}
}
然后,一旦我的地图样式加载,我正在使用:
var service = new MyMBXHttpServiceInterceptor();
MBXHttpServiceFactory.Instance.SetInterceptorForInterceptor(service);
我在 Android 上做了几乎类似的实现,并且工作正常,但在 iOS 上,它在矢量图块上给了我 401 响应,这意味着拦截器不起作用/我的标题没有更新。知道我做错了什么吗?
解决方案是使用 NSObject,然后使用接口。