fix: 更新 PushToken 获取逻辑, 适配新接口
--bug=1030040 --user=yufei.hu 【Always】新老用户都收不到PUSH https://www.tapd.cn/35322409/s/1169863 Signed-off-by: huyufei <yufei.hu@castbox.fm>
parent
5c2a93f362
commit
cb6bc4e794
|
|
@ -1,5 +1,8 @@
|
|||
|
||||
|
||||
using System.Threading.Tasks;
|
||||
using Firebase.Extensions;
|
||||
|
||||
namespace Guru
|
||||
{
|
||||
using System;
|
||||
|
|
@ -34,9 +37,51 @@ namespace Guru
|
|||
|
||||
FirebaseMessaging.TokenReceived += OnTokenReceived;
|
||||
FirebaseMessaging.MessageReceived += OnMessageReceived;
|
||||
GetFCMToken();
|
||||
|
||||
DelayGetFCMToken(0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取 FCM Token
|
||||
/// </summary>
|
||||
private static void GetFCMTokenAsync()
|
||||
{
|
||||
Debug.Log($"[Firebase] --- Start GetTokenAsync ---");
|
||||
FirebaseMessaging.GetTokenAsync().ContinueWithOnMainThread(task =>
|
||||
{
|
||||
if (!task.IsCompletedSuccessfully)
|
||||
{
|
||||
DelayGetFCMToken(10);
|
||||
return;
|
||||
}
|
||||
|
||||
var token = task.Result;
|
||||
if (string.IsNullOrEmpty(token))
|
||||
{
|
||||
DelayGetFCMToken(10);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Debug.Log($"[Firebase] --- GetPushToken:{token}");
|
||||
IPMConfig.IPM_PUSH_TOKEN = token;
|
||||
IPMConfig.IS_UPLOAD_DEVICE_SUCCESS = true;
|
||||
|
||||
UploadDeviceInfo();
|
||||
});
|
||||
}
|
||||
|
||||
private static async void DelayGetFCMToken(int seconds = 10)
|
||||
{
|
||||
await Task.Delay(seconds * 1000); // 等待 10s
|
||||
GetFCMTokenAsync();
|
||||
}
|
||||
|
||||
|
||||
//-------- Upload DeviceInfo -----------
|
||||
|
||||
|
||||
/*
|
||||
private static void GetFCMToken()
|
||||
{
|
||||
CoroutineHelper.Instance.StartCoroutine(CoroutineGetFCMToken());
|
||||
|
|
@ -44,17 +89,20 @@ namespace Guru
|
|||
|
||||
private static IEnumerator CoroutineGetFCMToken()
|
||||
{
|
||||
Debug.Log($"[Firebase] --- Start GetTokenAsync ---");
|
||||
|
||||
var task = FirebaseMessaging.GetTokenAsync();
|
||||
while (!task.IsCompleted)
|
||||
yield return new WaitForEndOfFrame();
|
||||
|
||||
if (task.IsFaulted || task.IsCanceled)
|
||||
{
|
||||
Log.I(LOG_TAG, $"--- GetTokenAsync Token Failed! {task.Status}");
|
||||
CoroutineHelper.Instance.StartDelayed(10, GetFCMToken);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.I(LOG_TAG, "GetTokenAsync Token: " + task.Result);
|
||||
Log.I(LOG_TAG, "--- GetTokenAsync Token: " + task.Result);
|
||||
if (IPMConfig.IPM_PUSH_TOKEN != task.Result || !IPMConfig.IS_UPLOAD_DEVICE_SUCCESS)
|
||||
{
|
||||
IPMConfig.IPM_PUSH_TOKEN = task.Result;
|
||||
|
|
@ -62,6 +110,7 @@ namespace Guru
|
|||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
private static void UploadDeviceInfo()
|
||||
{
|
||||
|
|
@ -73,7 +122,7 @@ namespace Guru
|
|||
}
|
||||
else
|
||||
{
|
||||
Log.I(LOG_TAG, "FirebaseMessage Send UploadDeviceInfo");
|
||||
Debug.Log($"[Firebase] --- UploadDeviceInfo ---");
|
||||
//延时重试
|
||||
new DeviceInfoUploadRequest()
|
||||
.SetRetryTimes(1)
|
||||
|
|
|
|||
Loading…
Reference in New Issue