2016-04-08 5 views
0

xamarin.androidを使用してアンドロイドゲームを開発しています。ゲームのバックエンドロジックはスマートフォンサーバーでホストされており、スマートフォンのUnityクライアントAPIを使用してサービスを利用しています。 私のプロジェクトアーキテクチャは:Xamarin.android - > PCL(ポータルクラスライブラリ)です。 SmartfoxサーバークライアントAPIは、PCL内に実装されています。 Smartfoxサーバーはバックエンドからコールバックメソッドを引き続き起動し、Thoeのコールバックイベントをキャプチャし、そのUIベースを変更する必要があります。 これらのコールバックを取得してUIに送信できるアーキテクチャを実装できません。私はPCL内でコールバックをキャプチャできますが、UIにこれらを転送する方法はありません。 アーチで私を助けてください。この特定のシナリオに適合することができます。私はトリガを実装しようとしましたが、PCLのUIメソッドにアクセスする方法はわかりません。 PCLのUIにアクセスしません。 PCLはプラットフォームにとらわれないので、あなたは本当にそれを行うことはできません。 いくつかのUIやUIを制御するものにデータを渡す方法はいくつか考えられます。 APIクライアントは、UIまたはコントローラがリッスンしているイベントを実装できます。ここでイベントを処理します。 MVVMパターンを実装し、メッセンジャーまたはView Serviceを介してViewModelにコールバックについて通知し、それに応じてViewModelを操作します。これはUIに反映されます。xamarin iosプロジェクトでsmarfoxを使用したmvvmアーキテクチャ

答えて

0

これらのシナリオでは、よくイベントアグリゲータ/メッセンジャーを使用します。メッセンジャーを使用するためにMVVMを採用する必要はありません。 TinyMessengerのようなものがあなたのために働くかもしれません。 MVVMを使いたい場合、それらのフレームワークのほとんどに独自のメッセンジャーが含まれます。

これらのコールバックはUIスレッド以外のスレッドで終了すると思われますので、UIを変更する準備ができたらRunOnUIThread()described hereとする必要があります。

+0

私はmvvmを使用する必要があります。私はこれらのコールバックを処理する必要があることを知っています。 –

+0

OK、ええ、あなたのMVVMフレームワークに含まれているメッセンジャーを使用してメッセージングを行うことができます。たとえば、MVVM Lightツールキットを使用している場合は、[こちら](https://msdn.microsoft.com/en-us/magazine/jj694937.aspx)と[ここ](https: //msdn.microsoft.com/en-us/magazine/d485e5b7-e6dc-4cbe-93fb-dc6311ef61a6)。 –

+0

ありがとうございました。しかし、ios view controllerにメッセージを送るバックエンドとしてsmartfoxが使われているxamarin iosの例はありますか? –

関連する問題