ページ「メインページ」と「Xamarin.AndroidでFirebase Cloud Messagingを使う」の間の差分

提供: MonoBook
(ページ間の差分)
ナビゲーションに移動 検索に移動
imported>Administrator
 
 
1行目: 1行目:
{| style="background-color:transparent;width:100%;border-style:none;border-collapse:collapse"
+
[[Firebase Cloud Messaging]](FCM)はAndroidアプリやiOSアプリなどに対して[[プッシュ通知]]の一斉配信を簡単に実装できるスグレモノ。
|-
 
| style="width:28em;vertical-align:top;padding-right:0.2em" |
 
<h2 style="font-size:100%;text-align:left;border-bottom:2px solid #060;margin:0.2em;padding:0.2em"><span style="font-size:150%">モ</span>ノブックにようこそ!</h2>
 
{| style="background-color:transparent;border-style:none;border-collapse:collapse"
 
|-
 
| style="vertical-align:top" |
 
  
[[おっぱい!おっぱい!]]
+
FCMは[[Xamarin.Android]]からも簡単に利用できる。マジオススメ。
  
<p>MonoBookとは何でも書いちゃおうというWikiです。某ウィキは辞典であり辞書ではないと消されるような細かい事項や、くだらない事項まで殴り書きするために立ち上げました。そこのROMってるアナタも参加してみませんか?</p>
+
==大雑把な流れ==
<p>現在、MonoBookには約 [[Special:Statistics|{{NUMBEROFARTICLES}}]] 本の記事があります。</p>
 
|}
 
| style="_width:25%;vertical-align:top;padding-left:0.2em" |
 
{| style="background-color:transparent;border-style:none;border-collapse:collapse"
 
|-
 
| style="width:25%;vertical-align:top;padding-left:0.2em" |
 
<h2 style="font-size:100%;text-align:left;border-bottom:2px solid #060;margin:0.2em;padding:0.2em"><span style="font-size:150%">ス</span>ペシャルページ</h2>
 
<div style="margin:0.1em;padding:0.1em 0.5em">
 
* [http://monobook.org/w/index.php?title=%E7%89%B9%E5%88%A5:%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3&type=signup&returnto=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8 アカウントの作成]
 
* [http://monobook.org/w/index.php?title=%E7%89%B9%E5%88%A5:%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3&type=login&returnto=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8 ログイン]
 
* [http://monobook.org/wiki/%E7%89%B9%E5%88%A5:%E5%AD%98%E5%9C%A8%E3%81%97%E3%81%AA%E3%81%84%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%B8%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AF 望まれているページ]
 
</div>
 
|}
 
|}
 
  
 +
#自前[[サーバー]]などから[[Google]]のFCMサーバーにメッセージ送信、または[[Firebase]]の管理画面でメッセージを作り送信
 +
#GoogleのFCMサーバーからAndroidデバイスに送信
 +
#AndroidデバイスはブロードキャストインテントでAndroidアプリに送信
 +
#Androidアプリが処理をする
  
 +
==大雑把な制限==
  
== MonoBook入門の心得 ==
+
*メッセージ長は最大4KB
=== 削除禁止 ===
 
たとえ間違った情報でも、それが広く伝わっていたという事実と、なぜどうしてそのようになったのか経緯を徹底的に探究する必要がある。
 
本ウィキでは「&lt;del&gt; 〜 &lt;/del&gt;」タグを大いに活用しよう。
 
  
<!-- ワラタけど一時消去
+
==大雑把な導入手順==
<del><pre>
+
[[MSDN]]にも同様の説明があるが日本語版は機械翻訳なのか意味不明すぎるので英語版を読んだ方がわかりやすい。
  
                .ノ′    } 〕    ,ノ           .゙'┬′   .,ノ
+
*https://docs.microsoft.com/en-us/xamarin/android/data-cloud/google-messaging/remote-notifications-with-fcm?tabs=macos
                ノ      } ゙l、   」′           .,/′   .,ノ _,,y
 
  .,v─ーv_         〕      〕 .|  .il゙            《 ._   .,,l(ノ^ノ
 
 ,i(厂  _,,,从vy      .,i「      .》;ト-v,|l′          _,ノ゙|.ミ,.゙'=,/┴y/
 
 l  ,zll^゙″  ゙ミ    .ノ       .il|′アll!           .>‐〕 \ _><
 
 《 il|′     フーv,_ .,i″       ||}ーvrリ、             ¨'‐.`   {
 
  \《 ヽ     .゙li ._¨''ーv,,_     .》′  ゙゙ミ| ,r′                }
 
    \ ,゙r_    lア'    .゙⌒>-vzト    .ミノ′                 〕
 
     .゙'=ミ:┐  .「      ./ .^〃     :、_ リ                   .}
 
       ゙\ア'   .--  ,,ノ|    、    ゙ミ}                   :ト
 
         ゙^ー、,,,¨ -   ''¨.─   :!.,   リ                   ノ
 
            〔^ー-v、,,,_,:     i゙「   }                  .,l゙
 
            l!     .´゙フ'ーv .,y    ]                  '゙ミ
 
            |     ,/゙ .ミ;.´.‐    .]                   ミ,
 
            |     ノ′ ヽ      〔                   ミ
 
            }    }     ′    }                   {
 
            .|    .ミ     .<     〔                    〕
 
            .{     \,_   _》、    .{                    .}
 
            {      ¨^^¨′¨'ー-v-r《                    〔
 
</pre></del>
 
-->
 
  
=== 特筆性など必要ない ===
+
===アプリに権限を追加する===
すべての事象は特筆性のない出来事から始まる。
+
アプリに以下の権限を追加する。GoogleのFCMサーバーを経由してのプッシュ通知なので[[インターネット]]に繋がっている必要がある。
  
=== 元気が一番、元気があれば何でもできる ===
+
*Internet
<video type="youtube" size="big">tGvHNNOLnCk</video>
 
  
<br clear="both"/>
+
===アプリにパッケージを追加する===
=== その他 ===
+
アプリに[[NuGet]]から以下の2つのパッケージを追加する。
[https://twitter.com/Mono_Book_ 新規投稿&更新の通知用Twitterアカウントはこちら]
 
* 2013年10月19日
 
** 「@Mono_Book_」に何かしらの返信すると24時間程度で自動的にフォローする仕様にしてみました。
 
** 「@Mono_Book_: [[ソース読め]]」と[[ツイート]]すると良い事があるかもしれません。
 
* 2013年10月7日
 
** 新アカウント「@Mono_Book_」を作ってます。
 
* 2013年10月2日
 
** [[腐ってやがる。早すぎたんだ。]] - [[不具合]]、いわゆる[[バグ]]である。
 
  
<!-- ここに追加 -->
+
*Xamarin.GooglePlayServices.Base
 +
*:Androidデバイスが[[Google Play]]対応機種かの判別に使用
 +
*Xamarin.Firebase.Messaging
 +
*:FCMそのもの
  
<!--
+
===Firebaseに新しいプロジェクトを作る===
== 全般 ==
+
[[ウェブブラウザ]][[Firebase]]の管理画面を開き、新しいプロジェクトを作る。
* [[.NET Framework]]
 
* [[Mono]]
 
** [[Monoのインストール]]
 
** [[xbuild]]
 
** [[mono-service]]
 
  
== Mono関連 ==
+
*https://console.firebase.google.com
* [[MonoDevelop]] - Monoプロジェクトで開発がすすめられている汎用の[[統合開発環境]]。
 
* [[MonoTouch]] - [[iPhone]]や[[iPad]]などの[[iOS]]向けアプリ開発環境。
 
* [[Mono for Android]] - [[Android]]向けアプリ開発環境。旧名[[MonoDroid]]。
 
* [[MonoMac]] - Mac OS X向けアプリ開発環境。
 
* [[Unity]] - 重量級ゲームエンジン。
 
* [[PlayStation Suite]] - Android端末およびVita OS(PlayStation Vita)向けのMonoベースの仮想プラットフォーム。
 
  
== PlayStation Suite関連 ==
+
新しいプロジェクトを作る際にAndroidアプリ(のパッケージ名)を登録する。このパッケージ名宛にメッセージが届くようになる。
; [[PlayStation Suite]]
 
* [[PlayStation Suite SDK]]
 
** [[PlayStation Suite Studio]]
 
** [[PlayStation Suite UI Composer]]
 
** [[PlayStation Suite Simulator]]
 
; ライブラリ
 
* Coreライブラリ
 
** [[Sce.Pss.Core]] - 各種例外など
 
** [[Sce.Pss.Core.Audio]] - オーディオ関連
 
** [[Sce.Pss.Core.Enviroment]] - 動作環境の状態取得など
 
** [[Sce.Pss.Core.Graphics]] - グラフィック関連
 
** [[Sce.Pss.Core.Imaging]] - フォントや画像データなど
 
** [[Sce.Pss.Core.Input]] - パッドやタッチパネルなど
 
* HighLevel
 
** [[Sce.Pss.HighLevel.GameEngine2D]]
 
** [[Sce.Pss.HighLevel.GameEngine2D.Base]]
 
** [[Sce.Pss.HighLevel.Model]]
 
** [[Sce.Pss.HighLevel.Physics2D]]
 
** [[Sce.Pss.HighLevel.UI]]
 
* その他
 
** [[基本クラスライブラリ]]
 
  
 +
一通り登録が終わると「google-services.json」が[[ダウンロード]]できる。[[Visual Studio for Mac]]上のプロジェクトに「google-services.json」を追加する。この[[ファイル]]を追加したら[[右クリック]]してビルドアクションに「GoogleServicesJson」と設定する。ビルドアクション一覧に「GoogleServicesJson」が表示されない[[バグ]]らしきものがあったが、ソリューションを閉じてから再度開いたら表示された。
  
; その他、入門記事など
+
===プログラムを実装する===
* [[PlayStation Suite SDK/プログラムの基本構造]]
+
[[ソース読め]]。[[あとは勇気だけだ]]。
  
== ウェブアプリ開発 ==
+
*https://developer.xamarin.com/samples/monodroid/Firebase/FCMNotifications/
* [[xsp]] - Monoプロジェクトで開発が進められているASP.NETアプリケーションサーバー。
 
** [[mod_mono]] - xspをApache HTTPdと連動させるモジュール。
 
** [[asp-state]]
 
** [[dbsessmgr]]
 
  
* [[ASP.NET]] - 使うな危険。
+
== 関連項目 ==
* [[ASP.NET MVC]] - ASP.NET無印とはまったく別物な、元祖ASPに近い感じのフレームワーク。
+
* [[Xamarin.Androidで通知を表示する]]
** [[ASP.NET MVC/ルーティング]]
+
* [[Xamarin.Androidで通知を表示しアプリを起動する]]
** [[ASP.NET MVC/アクション]] - [[ActionResultクラス]]も参照。
 
** [[ASP.NET MVC/ビューエンジン]]
 
** [[ASP.NET MVC/ビューヘルパー]]
 
** [[ASP.NET MVC/セレクター]]
 
** [[ASP.NET MVC/フィルター]]
 
** [[ASP.NET MVC/バインド]]
 
** [[ASP.NET MVC/Scaffolding]]
 
** [[ASP.NET MVC/ディレクティブ構文]]
 
** [[ActionResult]]
 
** [[ASP.NET MVC 1]]
 
** [[ASP.NET MVC 2]]
 
** [[ASP.NET MVC 3]]
 
** [[ASP.NET MVC 4]]
 
* [[ASP.NET Web API]]
 
* [[ASP.NET SPA]] - jQueryの中の人が作ってる「MVCのビューは全部クライアントサイドでやれ」と言わんばかりのぶっ飛んだフレームワーク。
 
* [[WebMatrix]]
 
* [[jQuery]]
 
** [[QUnit]]
 
** [[knockout.js]] - 勉強中
 
** [[sammy.js]] -  勉強中
 
** [[history.js]] -  勉強中
 
** [[nav.js]] -  勉強中
 
** [[upshot.js]] -  勉強中
 
  
== 便利ツールなど ==
+
== 参考 ==
* [[NUnit]]
 
* [[moq]]
 
* [[DynamicJson]]
 
* [[GeckoFX]]
 
* [[SmtpOverSsl]]
 
* [[Pash]]
 
  
== データベース ==
+
*Firebase Cloud Messaging
* [[MySQL Connector/NET]]
+
*:https://firebase.google.com/docs/cloud-messaging/
* [[Dapper]]
 
* [[DbExecutor]]
 
* [[Massive]]
 
* [[PetaPoco]]
 
* [[Soma]] - [[F Sharp|F#]]で書かれている。
 
* [[NHibernate]] - [[Java]]の[[Hibernate]]の移植。
 
* [[Fluent NHibernate]] - NHibernateと名前は似てるが全くの別物。何というか、Hibernateではない何か。
 
* [[Castle ActiveRecord]] - [[Active Record]]実装。
 
* [[SubSonic ActiveRecord]] - [[Active Record]]実装。
 
* [[LINQ to SQL]] - マイクロソフト製。LINQ公開時のデモ用。
 
* [[DbLinq]] - Monoプロジェクト一押しのLINQ to SQLに代わるLINQ to DATABASE。
 
* [[Entity Framework]] - マイクロソフト製の重量級ORM。
 
  
== その他 ==
+
[[category: Xamarin.Android]]
その他にはブックマーク的に記載する。
 
* [[Dokan]] および [[DokanNet]] - Windows向けの独自ファイルシステムがアホみたいに簡単に作れてしまう。
 
* [[プログレッシブダウンロード]]
 
* [[循環参照]]
 
* [[null]]
 
* [[冗長]]
 
* [[Google Analytics]] - 意味不明な用語が多い。
 
* [[アイス指数]]
 
* [[ccache]]
 
* [[DOS攻撃]]
 
* [[IOCS]]
 
* [[インハウス]]
 
* [[コンゼロ]]
 
* [[CSharp-SQLite]]
 
* [[ダブルチェックロッキング]]
 
* [[リンクアグリゲーション]]
 
* [[Enterprise Library]]
 
* [[Managed Extensibility Framework]]
 
* [[NetGore]]
 
* [[as a Service]] ([[aaS]])
 
 
 
== TIPS ==
 
* [[C Sharp/DLLのApp.config]]
 
 
 
{{stub}}
 
-->
 
 
 
__NOTOC__
 

2019年1月25日 (金) 07:30時点における最新版

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」が表示されないバグらしきものがあったが、ソリューションを閉じてから再度開いたら表示された。

プログラムを実装する[編集 | ソースを編集]

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

関連項目[編集 | ソースを編集]

参考[編集 | ソースを編集]