Xamarin.Forms
プッシュ通知
サーチ…
備考
AWS簡易通知サービスLingo:
エンドポイント - エンドポイントは電話、電子メールアドレスなど、AWS SNSが通知でヒットできるもの
トピック - 基本的に、すべてのエンドポイントを含むグループ
購読 - 通知を受け取るためにあなたの電話/クライアントにサインアップします
一般的なプッシュ通知Lingo:
APNS - Appleプッシュ通知サービス。プッシュ通知を送信できるのはAppleだけです。これが私たちが適切な証明書をアプリに提供する理由です。 AWS SNSには、AppleがAPNSに代わってAPNSに通知を送信することをSNSに許可するための証明書が提供されています。
GCM - Google Cloud MessagingはAPNSと非常によく似ています。プッシュ通知を直接送信できるのはGoogleだけです。まず、GCMでアプリケーションを登録し、トークンをAWS SNSに引き渡します。 SNSは、GCMを処理しデータを送信する複雑な処理をすべて処理します。
iOSの例
- 開発用具が必要です
- Appleデベロッパーアカウントにアクセスし、プッシュ通知を有効にしてプロビジョニングプロファイルを作成する
- あなたの電話に通知するための何らかの方法が必要です(AWS、Azure..etc) ここでAWSを使用します
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
//after typical Xamarin.Forms Init Stuff
//variable to set-up the style of notifications you want, iOS supports 3 types
var pushSettings = UIUserNotificationSettings.GetSettingsForTypes(
UIUserNotificationType.Alert |
UIUserNotificationType.Badge |
UIUserNotificationType.Sound,
null );
//both of these methods are in iOS, we have to override them and set them up
//to allow push notifications
app.RegisterUserNotificationSettings(pushSettings); //pass the supported push notifications settings to register app in settings page
}
public override async void RegisteredForRemoteNotifications(UIApplication application, NSData token)
{
AmazonSimpleNotificationServiceClient snsClient = new AmazonSimpleNotificationServiceClient("your AWS credentials here");
// This contains the registered push notification token stored on the phone.
var deviceToken = token.Description.Replace("<", "").Replace(">", "").Replace(" ", "");
if (!string.IsNullOrEmpty(deviceToken))
{
//register with SNS to create an endpoint ARN, this means AWS can message your phone
var response = await snsClient.CreatePlatformEndpointAsync(
new CreatePlatformEndpointRequest
{
Token = deviceToken,
PlatformApplicationArn = "yourARNwouldgohere" /* insert your platform application ARN here */
});
var endpoint = response.EndpointArn;
//AWS lets you create topics, so use subscribe your app to a topic, so you can easily send out one push notification to all of your users
var subscribeResponse = await snsClient.SubscribeAsync(new SubscribeRequest
{
TopicArn = "YourTopicARN here",
Endpoint = endpoint,
Protocol = "application"
});
}
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow