Xamarin 開發推播功能時可以用Google的FCM(Firebase Cloud Messaging)來實現,下列列出安卓的實作流程。
輸入專案名稱
選擇是否加入Google Analytics(推薦選繼續,後續在說明Google分析的使用方式)
選擇Google Analytics帳戶(選擇預設即可)
新增專案後新增安卓應用程式
填入應用程式的套件名稱(自行定義,會設定至程式的套件名稱)
下載Google-service.json檔(須放置在安卓程式的專案根目錄)
後續一直按繼續就成功了,再來就要設定程式的部分。
安卓要先設定其套件名稱,點選安卓專案->屬性->安卓資訊清單,填入剛剛新增FCM應用程式時的套件名稱
安卓專案安裝需要的Nuget套件
有幾個套件需要下載:1.Xamarin.GooglePlaySercices.Base2.Xamarin.Firebase.Messaging3.Xamarin.Google.Dapper4.Prisim (可以不安裝,只是一種設計模式來優化程式)
安裝時需要注意編譯的安卓版本,可以看MonoAndroid的版本去做下載,以下為範例程式的載Nuget截圖。
將剛剛下載的google-services.json加入專案的根目錄
在AndroidManifest.xml新增<reciver>
<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>
建立CustomFirebaseMessagingService服務
CustomFirebaseMessagingService範例
[Service]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
public class CustomFirebaseMessagingService : FirebaseMessagingService
{
public readonly ILocalNotificationsService localNotificationsService;
public CustomFirebaseMessagingService()
{
localNotificationsService = new LocalNotificationsService();
}
public override void OnNewToken(string token)
{
base.OnNewToken(token);
Log.Debug("FMC_SERVICE", token);
}
public override void OnMessageReceived(RemoteMessage message)
{
var notification = message.GetNotification();
localNotificationsService.ShowNotification(notification.Title, notification.Body, message.Data);
}
}
沒有留言:
張貼留言