在MonoDroid中解析推送通知

时间:2013-08-31 16:28:00

标签: mono xamarin.android xamarin parse-platform

所以我在MonoDroid应用程序中使用了Xamarin商店的Parse组件。所以我能够使用以下代码来存储对象

ParseClient.Initialize ("appid", "windowskey");

var obj = new ParseObject("Note");
obj ["text"] = "Hello, world!  This is a Xamarin app using Parse!";
obj ["tags"] = new List<string> {"welcome", "xamarin", "parse"};
obj.SaveAsync ();

我的真正目标是能够进行推送通知。即使存储了上述对象,Parse也没有在安装中注册设备以便能够发送推送通知。还有什么我想念的。注意:我在模拟器中这样做,但如果我没有弄错,它仍然可以工作。

1 个答案:

答案 0 :(得分:0)

@ basit-zia,是的,我做到了!我不得不从Java Parse SDK为push库创建一个绑定。我相信除了必要的元素之外,我能够剥离所有的库。我不记得我到底做了什么。

然后在Main Activity类中,我将以下内容放入OnStart()方法中:

            // check for a notification
            if (Intent != null)
                try {
                string jsonString = Intent.Extras.GetString("com.parse.Data");
                PushObject jsonObj = JsonConvert.DeserializeObject<PushObject>(jsonString);

                if (jsonObj.alert != null) {
                    Toast.MakeText (BaseContext, jsonObj.alert, ToastLength.Long).Show ();
                }

                } catch (Exception e) {
                    Console.WriteLine ("JSONException: " + e.Message);
                }

并将以下内容放入OnCreate()方法中:

            Com.Parse.Parse.Initialize(this, "app id here"}, "client key here");
            PushService.SetDefaultPushCallback (this, this.Class);
            PushService.StartServiceIfRequired (this);
            ParseInstallation.CurrentInstallation.SaveInBackground ();