2016-09-07 23 views
0

私はiOSとAndroid用のXamarinネイティブプロジェクトを作成しています。私は認証のためにバックエンドと紺碧のOAuthとしてMicrosoft Azureを使用しています。 iOsとAndroidプロジェクトの両方にMicrosoft Azure Mobile Clientを追加しました。 Xamarin.AndroidプロジェクトでAzure MobileサービスOAuth in Xamarin.iOS

、私は、コードを次のように紺碧との認証をした:上記のコード

MobileServiceClient client = new MobileServiceClient("my-azure-app-url"); 
var user = client.LoginAsync(this, MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory); 

は正常に動作し、私は、認証を行うことができると思います。

私もXamain.iOSで試したことがありますが、私はMobileServiceClientの初期化がiOSで異なることを知ることができます。

MobileServiceClient client = new MobileServiceClient("my-azure-app-url", HttpMessageHandler); 

このHttpMessageHandlerは見つかりません。誰でも解決策を教えてくれるでしょう

答えて

0

HTTP message handlerは、クライアントとサーバーの間の実際の通信を担当します。

ハンドラを指定しない場合に使用されるデフォルトの(管理された)実装があります。しかし、あなたは先に進み、HttpClientにiOS(およびAndroid)でネイティブのものを使用するよう指示することができます。 ModernHttpClientを使用するか、Xamarin Studio to configureNSUrlSession(iOS上)を使用してください。ネイティブハンドラを使用してIPv6環境をサポートし、パフォーマンスを向上させることを強くお勧めします。

あなたの場合は、ハンドラパラメータを省略するか、new System.Net.Http.HttpMessageHandler()を使用します。

ModernHttpClientをアプリに追加すると、new NativeMessageHandler()が渡されます。

私のrepoの例は、Azureオフライン同期についてです。

0

XamarinプロジェクトでAzure Mobile Serviceを設定するのと同様の問題がありました。私は、Microsoft.Azure.Mobile.Clientパッケージの多数の更新と削除の後、モバイルサービスクライアントの確立に成功しました。

私は.Droidと.iOSプロジェクトの両方で正確に同じ初期化を使用しています:.Droidと.iOSプロジェクトの両方に接続

public static MobileServiceClient mobileservice = new MobileServiceClient("my-azure-app-url"); 

パッケージ:

  • マイクロソフトを。 Azure.Mobile.Client(1.0.21版)(1.1.10版)
  • Microsoft.Bcl
  • Microsoft.Bcl.Build(2.0.1版)
  • Microsoft.Net.Http(ver 2.2.29)

私が理解する限り、いくつかのパッケージ間で互換性がなくなりました。 Azure Mobileサービスをコンポーネントストアから入手することは間違いありません。これがあなたが使用したものなら、手動でパッケージをインストールしてみてください。結局、それは私のために働いたものです。

関連する問題