Xamarin.Android无法从Android 10 Q中的Azure数据库中提取表

问题描述 投票:1回答:1

我确实读过这是因为缺乏对Netcore 2.1的支持

myItemsList = await App.MobileServiceAndroid.GetTable<MyTable>().ToListAsync();

目前在Android上不起作用,并且有一种变通方法可以在MobileServiceClient的构造函数中传递HttpClientHandler(),所以我做到了这一点:

public static MobileServiceClient MobileServiceAndroid =
            new MobileServiceClient(AppConstants.AZURE_PRODUCTION_WEB_API_URL, new HttpClientHandler());

但是这是不完整的,它仍然无法正常工作,我到底要做什么才能完成这项工作,任何指导都是值得赞赏的。

azure http xamarin.android
1个回答
0
投票
public static MobileServiceClient MobileServiceAndroid = new MobileServiceClient(AppConstants.AZURE_PRODUCTION_WEB_API_URL, new AndroidClientHandler());

很可能您在使用using语句时可能会遇到问题,因为您将必须按照here所示的步骤进行操作,或者在以下步骤中为您自定义:

将Xamarin Forms项目添加到所有项目中。

    在Core项目中创建接口ICustomClientHandler
  • using System; using System.Net.Http; namespace Test { public interface ICustomClientHandler { HttpClientHandler GetHandler(); } }
  • 然后在Droid项目中创建一个CustomClientHandler,它将成为依赖项服务的Android部分,它将帮助您检索本机AndroidClientHandler。>
    1. using System.Net.Http; using Xamarin.Android.Net; using System.Runtime.CompilerServices; using Xamarin.Forms; using Test; [assembly: Xamarin.Forms.Dependency(typeof(Test.Droid.CustomClientHandler))] namespace Test.Droid { public class CustomClientHandler : ICustomClientHandler { public HttpClientHandler GetHandler() { return new AndroidClientHandler(); } } }
  • 也以类似方式实施iOS版本,但改为return new HttpClientHandler();
      最后,使用所示的代码,在您的Core项目中:
  • var clientHandler = DependencyService.Get<ICustomClientHandler>().GetHandler(); public static MobileServiceClient MobileServiceAndroid = new MobileServiceClient(AppConstants.AZURE_PRODUCTION_WEB_API_URL, clientHandler);
  • © www.soinside.com 2019 - 2024. All rights reserved.