使用Xamarin Forms开发移动应用程序。对于推送通知,我们使用的是Amazon Simple Notification Service(SNS)。
Xamarin.Andriod: 1.在安装应用程序时,我们使用以下代码片段将设备ID注册到MainActivity的OnCreate方法中的Amazon SNS。它工作正常
using (Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER"))
{
string senders = AmazonUtils.GoogleConsoleProjectId;
intent.SetPackage("com.google.android.gsf");
intent.PutExtra("app", PendingIntent.GetBroadcast(this, 0, new Intent(), 0));
intent.PutExtra("sender", senders);
this.StartService(intent);
}
每次应用程序打开时,都会在Amazon SNS中注册相应的设备ID。由于此应用程序需要额外的4秒来检查此过程,并在该页面加载后。
每次应用程序打开时,是否需要检查设备是否已注册?这是推送通知的标准吗?
此致 基兰
答案 0 :(得分:1)
它将添加一个名为Settings
在这个课程中你应该添加:
private const string IsRegisteredKey = "registered_key";
private static readonly bool IsRegisteredDefault = false;
//Then adding this property
public static bool IsRegistered
{
get
{
return AppSettings.GetValueOrDefault(IsRegisteredKey, IsRegisteredDefault);
}
set
{
AppSettings.AddOrUpdateValue(IsRegisteredKey, value);
}
}
然后在您的代码中调用此属性,如下所示:
using YourProjectNameSpace.Droid.Helper
....
if(!Settings.IsRegistered)
{
using (Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER"))
{
string senders = AmazonUtils.GoogleConsoleProjectId;
intent.SetPackage("com.google.android.gsf");
intent.PutExtra("app", PendingIntent.GetBroadcast(this, 0, new Intent(), 0));
intent.PutExtra("sender", senders);
this.StartService(intent);
}
Settings.IsRegistered = true;
}