/// <summary> /// デバイストークンの取得を行います。 <br/> /// 通信結果が必要な場合はコールバックを指定するこちらを使用します。 /// </summary> /// <param name="callback">コールバック</param> public void GetDeviceToken(NCMBGetCallback <String> callback) { if (this.ContainsKey("deviceToken") && this["deviceToken"] != null) { callback((string)this["deviceToken"], null); } else { new Thread(() => { for (int i = 0; i < 10; i++) { if (NCMBManager._token != null) { this["deviceToken"] = NCMBManager._token; break; } Thread.Sleep(500); } if (callback != null) { if (this.ContainsKey("deviceToken") && this["deviceToken"] != null) { callback((string)this["deviceToken"], null); } else { callback(null, new NCMBException("Can not get device token")); } } }).Start(); } }
/// <summary> /// 指定IDのオブジェクトを取得を行います。<br/> /// 通信結果を受け取るために必ずコールバックを設定を行います。 /// </summary> /// <param name="objectId"> オブジェクトID</param> /// <param name="callback"> コールバック</param> public void GetAsync(string objectId, NCMBGetCallback <T> callback) { if (callback == null) { throw new ArgumentException("It is necessary to always set a callback."); } new AsyncDelegate(delegate { string url = _getSearchUrl(this._className); //クラス毎のURL作成 //オブジェクト取得API url += "/" + objectId; ConnectType type = ConnectType.GET; //メソッドタイプの設定 //通信処理 NCMBConnection con = new NCMBConnection(url, type, null, NCMBUser._getCurrentSessionToken()); con.Connect(delegate(int statusCode, string responseData, NCMBException error) { Dictionary <string, object> resultObj; NCMBObject objectData = null; try { if (error == null) { resultObj = MiniJSON.Json.Deserialize(responseData) as Dictionary <string, object>; objectData = _convertGetResponse(resultObj); } } catch (Exception e) { error = new NCMBException(e); } //引数はリスト(中身NCMBObject)とエラーをユーザーに返す Platform.RunOnMainThread(delegate { callback((T)objectData, error); }); return; }); }).BeginInvoke((IAsyncResult r) => { }, null); }