您好,登錄后才能下訂單哦!
幾乎每一個(gè)應(yīng)用程序的一個(gè)重要特性是支持推送通知的能力。使用推送通知,您可以更新用戶,而不需要應(yīng)用程序在任何時(shí)候運(yùn)行或輪詢服務(wù)器, 避免潛在的電池電量不足。 隨著火力點(diǎn)云信息的介紹(FCM),谷歌使得在Android應(yīng)用程序中實(shí)現(xiàn)推送通知變得容易了一點(diǎn)。FCM是谷歌云消息(GCM)的新版本和改進(jìn)版本,您可以使用它將遠(yuǎn)程通知發(fā)送到客戶機(jī)應(yīng)用程序。對(duì)于將瞄準(zhǔn)多個(gè)平臺(tái)或需要利用先進(jìn)的推操作(如分段推送)的應(yīng)用程序,我們可以使用帶有Azure通知集線器的FCM。
與GCM不同,F(xiàn)CM負(fù)責(zé)為您提供基本的消息傳遞管道。使用FCM,您不再需要編寫代碼來注冊(cè)應(yīng)用程序,也不必包含重試邏輯來更新訂閱令牌。您可以通過以下操作向您的應(yīng)用程序添加基本的FCM推送通知:
安裝Xamarin.Android NuGets包和一個(gè)證書文件.
添加一對(duì)<service> 定義到你的ndroidManifest.xml.
寫幾行代碼把它們?nèi)拷M合起來。
另外,不要編寫發(fā)送通知的測(cè)試程序,你可以使用新的基于Web的火力點(diǎn)控制臺(tái)發(fā)送通知到你的應(yīng)用程序測(cè)試。
今天,我們來看看如何使用Xamarin.Firebase.Messaging包來構(gòu)建一個(gè)基于FCM消息通知功能到你的應(yīng)用中
在你可以在你的應(yīng)用程序中使用FCM服務(wù)之前,你通過Firebase控制臺(tái)創(chuàng)建一個(gè)Firebase項(xiàng)目。在你登錄后,點(diǎn)擊CREATE NEW PROJECT,輸入項(xiàng)目名,并點(diǎn)擊 CREATE PROJECT:
下一步,點(diǎn)擊Add Firebase to your Android app。 當(dāng)出現(xiàn)提示時(shí),輸入應(yīng)用程序的包名并單擊“注冊(cè)應(yīng)用程序”:
當(dāng)你點(diǎn)擊REGISTER APP,證書自動(dòng)生成以便你的應(yīng)用能夠訪問FireBase服務(wù)器。證書打包到一個(gè)名叫google-services.json的文件中, 當(dāng)你點(diǎn)擊REGISTER APP 按鈕后證書自動(dòng)下載, 保存好這個(gè)文件,后續(xù)你會(huì)用到它。
下一步,你需要添加兩個(gè)Xamarin NuGet包到你的應(yīng)用中。啟動(dòng)NuGet 包管理器(在Visual Studio中,在解決方案瀏覽器右擊References并選擇Manage NuGet Packages), 瀏覽 Xamarin.GooglePlayServices.Base,選擇它,并點(diǎn)擊Install.
The Google Play Services package must be installed in order for FCM to work. Next, do the same for Xamarin.Firebase.Messaging:
將為這些包中的每一個(gè)安裝額外的依賴包。
此外,要確保您在你的Anroid設(shè)備安裝并擁有 Google Play Services APK。Firebase消息使用Google Play 涌 APK和Firebase服務(wù)器通信。
當(dāng)你在Firebase控制臺(tái)創(chuàng)建一個(gè)項(xiàng)目,你將下載google-services.json 證書文件,現(xiàn)在將它插入到你的應(yīng)用中!
拷貝google-services.json項(xiàng)目文件夾, 并將到添加到項(xiàng)目中(在Visual Studio中,你可以在瀏覽器解決方案點(diǎn)擊Show All Files 圖標(biāo),右擊google-services.json,接著選擇Include in Project)。
保存變得并關(guān)閉解決方案。重新打開解決方案并為google-services.json設(shè)置構(gòu)建行為為GoogleServicesJson (在Visual Studio, Build Action 彈出菜單在Advanced 一節(jié)的Properties 頁):
現(xiàn)在 google-services.json是項(xiàng)目的一部分,Xamarin構(gòu)建處理能擴(kuò)展這個(gè)證書并將它合并到AndroidManifest.xml 文件中。 Xamarin.Firebase.Messaging 使用這個(gè)證書來訪問 Firebase服務(wù)。
你的客戶機(jī)應(yīng)用程序必須先注冊(cè)FCM,然后才能收到推送通知。這是Xamarin.Firebase.Messaging接觸FCM方法,發(fā)送它的證書,并接收注冊(cè)令牌環(huán)返回的消息。這個(gè)道理,這是定期更新,以創(chuàng)造一個(gè)安全的通道,F(xiàn)irebase服務(wù)器。你也可以轉(zhuǎn)發(fā)此令牌您的應(yīng)用服務(wù)器,可以與Firebase服務(wù)。
你的應(yīng)用必須實(shí)現(xiàn)FirebaseInstanceIdService來處理創(chuàng)建和更新信息環(huán)。這實(shí)際上比聽起來簡(jiǎn)單得多,接下來你會(huì)看到。
編輯AndroidManifest.xml (在解決方案瀏覽器中點(diǎn)擊Properties ) 并在 <receiver> 元素之后 插入到<application>一節(jié):
點(diǎn)擊(此處)折疊或打開
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver"
android:exported="false" />
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
這將聲明用于管理注冊(cè)令牌的必要接收者。
如果你的權(quán)限列表沒有啟用 INTERNET 權(quán)限,在Properties > Android Manifest > Required 權(quán)限中啟用它:
現(xiàn)在,是時(shí)候?qū)懘a了!添加一個(gè)新的CE文件到你的項(xiàng)目中(在Visual Studio, 右擊項(xiàng)目名并選擇Add > New Item > Class)。給它取名為MyFirebaseIIDService.cs 并輸入如下代碼:
點(diǎn)擊(此處)折疊或打開
using System;
using Android.App;
using Firebase.Iid;
using Android.Util;
namespace FCMExample
{
[Service]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class MyFirebaseIIDService : FirebaseInstanceIdService
{
const string TAG = "MyFirebaseIIDService";
public override void OnTokenRefresh()
{
var refreshedToken = FirebaseInstanceId.Instance.Token;
Log.Debug(TAG, "Refreshed token: " + refreshedToken);
}
}
}
改變命名空間FCMExample為你應(yīng)用的命名空間。
這就是它的全部!
當(dāng)注冊(cè)的令牌創(chuàng)建或者改變時(shí)執(zhí)行OnTokenRefresh方法。因?yàn)楫?dāng)更新時(shí),令牌輸出日志到Output窗口,你就可以確認(rèn)應(yīng)用是否在運(yùn)行。你將輸入令牌到Firebase控制臺(tái),當(dāng)你想要改善一個(gè)測(cè)試通知到你的應(yīng)用時(shí)。
現(xiàn)在您的應(yīng)用程序具有足夠的功能來接收來自流媒體的背景通知,是時(shí)候進(jìn)行測(cè)試了。在你構(gòu)建應(yīng)用之前,請(qǐng)確保應(yīng)用包名匹配你在Firebase控制臺(tái)創(chuàng)建你的Firebase項(xiàng)目時(shí)輸入的包名。
重新構(gòu)建你的應(yīng)用,運(yùn)行它,并觀察Output窗口,直到顯示令牌信息。比如:
將此令牌復(fù)制到剪貼板; 在下面的步驟中你將會(huì)粘貼到Firebase控制臺(tái)。
登錄到 Firebase 控制臺(tái),選擇你的項(xiàng)目,點(diǎn)擊Notifications,再點(diǎn)擊SEND YOUR FIRST MESSAGE:
在Compose message 頁,在Message text中輸入消息。選擇Single device 作為目標(biāo),并將你IDE Output窗口拷貝的令牌信息粘貼到注冊(cè)令牌框中:
在點(diǎn)擊 SEND MESSAGE之前, 將應(yīng)用切換到后臺(tái)運(yùn)行(你可以觸摸Android overview按鈕并點(diǎn)擊home屏)。當(dāng)你在Firebase控制臺(tái)準(zhǔn)備好時(shí)點(diǎn)擊 SEND MESSAGE。當(dāng) Review message 對(duì)話框顯示時(shí),點(diǎn)擊SEND。通知圖標(biāo)就會(huì)出現(xiàn)在Android設(shè)備上:
打開通知查看消息;通知消息應(yīng)該正是你在Firebase控制臺(tái)錄入的:
祝賀您,您剛剛發(fā)送并接收了第一個(gè)FCM推送通知!
這個(gè)簡(jiǎn)單的示例只涉及到使用Visual Studio中的FCM和推送通知所能做的工作。為了解更多關(guān)在Visual Studio和其它平臺(tái)使用Xamarin.Android,在其中使用Firebase云消息服務(wù),一定要閱讀 Firebase Cloud Messaging 和Remote Notifications with Firebase Cloud Messaging. FCMNotifications 示例應(yīng)用程序還是,如果你建立一個(gè)應(yīng)用程序,使用FCM的推送通知借代碼從一個(gè)好地方。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。