「Xamarin.AndroidでFirebase Cloud Messagingを使う」の版間の差分

提供:MonoBook
1行目: 1行目:
[[Firebase Cloud Messaging]](FCM)はAndroidアプリやiOSアプリなどに対して[[プッシュ通知]]の一斉配信を簡単に実装できるスグレモノ。
[[Firebase Cloud Messaging]](FCM)はAndroidアプリやiOSアプリなどに対して[[プッシュ通知]]の一斉配信を簡単に実装できるスグレモノ。


FCMは[[Xamarin.Android]]からも簡単に利用できる。
FCMは[[Xamarin.Android]]からも簡単に利用できる。マジオススメ。
マジオススメ。


==大雑把な流れ==
==大雑把な流れ==


#自前サーバーなどからGoogleのFCMサーバーにメッセージ送信、またはFCMの管理画面でメッセージを作り送信
#自前[[サーバー]]などから[[Google]]のFCMサーバーにメッセージ送信、または[[Firebase]]の管理画面でメッセージを作り送信
#GoogleのFCMサーバーからAndroidデバイスに送信
#GoogleのFCMサーバーからAndroidデバイスに送信
#AndroidデバイスはブロードキャストインテントでAndroidアプリに送信
#AndroidデバイスはブロードキャストインテントでAndroidアプリに送信
26行目: 25行目:


===アプリにパッケージを追加する===
===アプリにパッケージを追加する===
アプリにNuGetから以下の2つのパッケージを追加する。
アプリに[[NuGet]]から以下の2つのパッケージを追加する。


*Xamarin.GooglePlayServices.Base
*Xamarin.GooglePlayServices.Base
*:AndroidデバイスがGoogle Play対応機種かの判別に使用
*:Androidデバイスが[[Google Play]]対応機種かの判別に使用
*Xamarin.Firebase.Messaging
*Xamarin.Firebase.Messaging
*:FCMそのもの
*:FCMそのもの


===Firebaseに新しいプロジェクトを作る===
===Firebaseに新しいプロジェクトを作る===
ウェブブラウザでFirebaseの管理画面を開き、新しいプロジェクトを作る。
[[ウェブブラウザ]]で[[Firebase]]の管理画面を開き、新しいプロジェクトを作る。


*https://console.firebase.google.com
*https://console.firebase.google.com


新しいプロジェクトを作る際にAndroidアプリ(のパッケージ名)を登録する。
新しいプロジェクトを作る際にAndroidアプリ(のパッケージ名)を登録する。このパッケージ名宛にメッセージが届くようになる。
このパッケージ名宛にメッセージが届くようになる。


一通り登録が終わると「google-services.json」がダウンロードできる。
一通り登録が終わると「google-services.json」が[[ダウンロード]]できる。[[Visual Studio for Mac]]上のプロジェクトに「google-services.json」を追加する。この[[ファイル]]を追加したら[[右クリック]]してビルドアクションに「GoogleServicesJson」と設定する。ビルドアクション一覧に「GoogleServicesJson」が表示されない[[バグ]]らしきものがあったが、ソリューションを閉じてから再度開いたら表示された。
Visual Studio for Mac上のプロジェクトに「google-services.json」を追加し、ビルドアクションを「GoogleServicesJson」と設定する。ビルドアクション一覧に「GoogleServicesJson」が表示されないバグらしきものがあったが、ソリューションを閉じてから再度開いたら表示された。


===プログラムを実装する===
===プログラムを実装する===
[[ソース読め]]。
[[ソース読め]]。[[あとは勇気だけだ]]。


*https://developer.xamarin.com/samples/monodroid/Firebase/FCMNotifications/
*https://developer.xamarin.com/samples/monodroid/Firebase/FCMNotifications/

2019年1月24日 (木) 02:26時点における版

Firebase Cloud Messaging(FCM)はAndroidアプリやiOSアプリなどに対してプッシュ通知の一斉配信を簡単に実装できるスグレモノ。

FCMはXamarin.Androidからも簡単に利用できる。マジオススメ。

大雑把な流れ

  1. 自前サーバーなどからGoogleのFCMサーバーにメッセージ送信、またはFirebaseの管理画面でメッセージを作り送信
  2. GoogleのFCMサーバーからAndroidデバイスに送信
  3. AndroidデバイスはブロードキャストインテントでAndroidアプリに送信
  4. Androidアプリが処理をする

大雑把な制限

  • メッセージ長は最大4KB

大雑把な導入手順

MSDNにも同様の説明があるが日本語版は機械翻訳なのか意味不明すぎるので英語版を読んだ方がわかりやすい。

アプリに権限を追加する

アプリに以下の権限を追加する。GoogleのFCMサーバーを経由してのプッシュ通知なのでインターネットに繋がっている必要がある。

  • Internet

アプリにパッケージを追加する

アプリにNuGetから以下の2つのパッケージを追加する。

  • Xamarin.GooglePlayServices.Base
    AndroidデバイスがGoogle Play対応機種かの判別に使用
  • Xamarin.Firebase.Messaging
    FCMそのもの

Firebaseに新しいプロジェクトを作る

ウェブブラウザFirebaseの管理画面を開き、新しいプロジェクトを作る。

新しいプロジェクトを作る際にAndroidアプリ(のパッケージ名)を登録する。このパッケージ名宛にメッセージが届くようになる。

一通り登録が終わると「google-services.json」がダウンロードできる。Visual Studio for Mac上のプロジェクトに「google-services.json」を追加する。このファイルを追加したら右クリックしてビルドアクションに「GoogleServicesJson」と設定する。ビルドアクション一覧に「GoogleServicesJson」が表示されないバグらしきものがあったが、ソリューションを閉じてから再度開いたら表示された。

プログラムを実装する

ソース読めあとは勇気だけだ

参考