2017年12月10日 星期日

for xamarin android :如何自行觸發FCM中 service「onTokenRefresh」事件

相信大家都已經會基本的FCM的推播架構了
不過,或許你會問「如何觸發FirebaseInstanceIdService 中的OnTokenRefresh事件」
 官方的回應是安裝,反安裝套件,或是過一段時間會重行配置token
有個不錯的觸發方式可以參考
=======在某個activity中=================
 ...
...
... 按鈕click事件

btnDeleteToken.Click +=  delegate (object sender, EventArgs e) {
                 //注意,deleteFcmInstanace一定要另起執行緒執行,不能在MAIN_THREAD中執行
                var th = new System.Threading.Thread(
                      () => {
                          deleteFcmInstanace();
                      }
                 );
                th.Start();
            };
...
...
...
void deleteFcmInstanace(){
                Firebase.Iid.FirebaseInstanceId.Instance.DeleteInstanceId();
                Log.Debug("DONE", "delete token works");
               //一定要再InitializeApp,否則取得的token是null的
              //以下動作執行後,就會觸發FirebaseInstanceIdService 中的OnTokenRefresh事件
                Firebase.FirebaseApp.InitializeApp(this);
 var refreshedToken = Firebase.Iid.FirebaseInstanceId.Instance.Token;
}

====================================
做這事是有點不實際,只是想要驗證一下罷了,大家應該用不到
不過「好奇心」是所有programmer應該有的吧



沒有留言:

張貼留言