Android用のRemoteConfigをXamarinにすばやく統合する方法

Xamarinは、Microsoftが提供するモバイルサービスのマルチシステム開発プラットフォームとして、多くの開発者に好まれるアプリケーション開発プラットフォームになっています。AppGallery Connect(以下AGCと呼びます)も徐々にXamarinSDKをサポートしています。今日は、Xamarinバージョンのリモート構成サービスにすばやくアクセスする方法を説明します。

アクセス手順

Xamarin環境をインストールします

Xamarinの公式開発プラットフォームはVisualStudioであるため、最初にVisualStudio2019をインストールする必要があります。

ダウンロードアドレス:https ://visualstudio.microsoft.com/zh-hans/downloads/

ダウンロードしてインストールした後、Xamarinプラグインである.NETを使用したモバイル開発(中国語では「.NETを使用したモバイル開発」と呼ばれます)もインストールする必要があります。インストールが完了すると、VisualStudioを使用してXamarinを開発できます。 AndroidとiOS。

cke_13819.png

AGCページでリモート構成を有効にし、対応する構成アイテムを作成します

特定の構成手順については、公式のリモート構成ドキュメントを参照してください。

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-remoteconfig-android-cloudconfig-0000001056587179

Xamarinプロジェクトを作成する

1.VisualStudioで新しいプロジェクトを作成します

モバイルアプリケーション(Xamarin.Forms)を選択し、アプリケーションの名前とその他の情報を設定して、プロジェクトを作成します

cke_13820.png

2.リモートで構成されたXamarinパッケージを新しいプロジェクトに統合します

Xamarinパッケージを統合する方法は2つあります

1つ目はクラウド統合です。ディレクトリバーを右クリックして、[NuGetパッケージの管理]を選択します。

cke_13821.png

参照オプションでHuawei.Agconnect.RemoteConfigurationを検索し、[インストール]をクリックします。

cke_13822.png

2番目の方法は、NuGetパッケージをローカルに統合することです。最初に、必要なすべてのNuGetパッケージをローカルフォルダーに配置する必要があります。

cke_13823.png

最初の方法でNuGetパッケージマネージャーを開き、パッケージソースの横にある設定アイコンをクリックして、オプションディレクトリを開きます。

cke_13824.png

緑のプラス記号をクリックして新しいパッケージソースを追加し、NuGetローカルパッケージがソース領域に保存されたばかりのフォルダーディレクトリに入ります。

cke_13825.png

3.AGC構成ファイルを追加します

AGCは、開発者がすべてのアプリケーション関連情報を保存するための構成jsonファイルを用意しています。このファイルをプロジェクトに統合して、後でインターフェイスを呼び出すときに使用する必要があります。SDKはコンテンツを自動的に読み取るため、開発者は必要ありません。手動で呼び出すには、着信、具体的な手順は次のとおりです

3.1 AGC管理コンソールからagconnect-services.jsonファイルをダウンロードし、プロジェクトのAssetsディレクトリにファイルを配置します

cke_13826.png

3.2プロジェクトに新しいクラスHmsLazyInputStreams.csを作成し、次のコードを記述してjsonファイルのコンテンツを読み取ります

using System;

using System.IO;

using Android.Util;

using Android.Content;

using Huawei.Agconnect.Config;

namespace XamarinHmsRemoteConfig

{

class HmsLazyInputStream : LazyInputStream

{

public HmsLazyInputStream(Context context) : base(context)

{

Get(context);

}

public override Stream Get(Context context)

{

try

{

return context.Assets.Open("agconnect-services.json");

}

catch (Exception e)

{

Log.Error(e.ToString(), "Can't open agconnect file");

return null;

}

}

}

}

3.3別のコンテンツプロバイダークラスを作成し、アプリケーションの起動時にファイルを読み取れるように次のコードを記述します。コンテンツプロバイダーのパッケージ名は、アプリケーションパッケージ名(パッケージを含む)と同じである必要があることに注意してください。プロジェクトで設定された名前とAGCパッケージ名)管理コンソールで設定されたパッケージ名)。

using System;

using Android.Content;

using Android.Database;

using Huawei.Agconnect.Config;

namespace XamarinHmsRemoteConfig

{

[ContentProvider(new string[] { "com.huawei.cordova.remoteconfig.XamarinCustomProvider" }, InitOrder = 99)]

public class XamarinCustomProvider : ContentProvider

{

public override int Delete(Android.Net.Uri uri, string selection, string[] selectionArgs)

{

throw new NotImplementedException();

}

public override string GetType(Android.Net.Uri uri)

{

throw new NotImplementedException();

}

public override Android.Net.Uri Insert(Android.Net.Uri uri, ContentValues values)

{

throw new NotImplementedException();

}

public override bool OnCreate()

{

AGConnectServicesConfig config = AGConnectServicesConfig.FromContext(Context);

config.OverlayWith(new HmsLazyInputStream(Context));

return false;

}

public override ICursor Query(Android.Net.Uri uri, string[] projection, string selection, string[] selectionArgs, string sortOrder)

{

throw new NotImplementedException();

}

public override int Update(Android.Net.Uri uri, ContentValues values, string selection, string[] selectionArgs)

{

throw new NotImplementedException();

}

}

}

3.4パッケージ名を設定する

プロジェクトを右クリックして[プロパティ]オプションを見つけ、[Androidマニフェスト]タブでパッケージ名を見つけて、アプリケーションのパッケージ名を設定します。

cke_13827.png

4.ローカルのデフォルト構成を追加します

リモート構成により、開発者はデフォルト値をローカルで構成できます。これを構成するには2つの方法があります。

1つ目は、xmlファイルを使用して関連する構成を設定することです。リソースフォルダーの下のXmlフォルダーにxmlファイルを作成して、構成アイテムとデフォルト値を保存できます。

cke_13828.png

コードでApplyDefaultメソッドを呼び出して、対応するxmlファイルを読み取ります

AGConnectConfig.Instance.ApplyDefault(Resource.Xml.RemoteConfig);

2番目の方法は、コードでデフォルト構成を動的に設定することです。例は次のとおりです。

IDictionary<string, Java.Lang.Object> ConfigVariables = new Dictionary<string, Java.Lang.Object>();

ConfigVariables.Add("value1", "Default");

AGConnectConfig.Instance.ApplyDefault(ConfigVariables);

5、フェッチ

フェッチ機能はリモート構成のコア機能です。フェッチインターフェイスは、最新の構成値をクラウドからローカルにダウンロードして、リアルタイムで構成できます。インターフェースには、インターフェースがクラウドから値を取得する間隔を表すパラメーターがあります。値が渡されない場合、デフォルトで12時間になります。

AGConnectConfig.Instance.Fetch(fetchInterval).AddOnSuccessListener(new TaskListener(this))。AddOnFailureListener(new TaskListener(this));

6、MergedAll

残りのインターフェースはAndroidバージョンと一貫性がありますが、Androidバージョンとは名前が少し異なるインターフェースが1つあります。これは、MergedAllメソッドです。このメソッドはAndroidではgetMergedAllという名前であり、その機能はデフォルト値とクラウド値を組み合わせたすべての値を返すことです。

AGConnectConfig.Instance.MergedAll;

上記は、Xamarinバージョンのリモート構成にすばやくアクセスするプロセス全体です。Xamarinをサポートするサービスが増えるにつれて、アクセスチュートリアルも増えます。

{{o.name}}
{{m.name}}

おすすめ

転載: my.oschina.net/u/4478396/blog/5516956