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
|
namespace Guru
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -34,27 +37,72 @@ namespace Guru
|
||||||
|
|
||||||
FirebaseMessaging.TokenReceived += OnTokenReceived;
|
FirebaseMessaging.TokenReceived += OnTokenReceived;
|
||||||
FirebaseMessaging.MessageReceived += OnMessageReceived;
|
FirebaseMessaging.MessageReceived += OnMessageReceived;
|
||||||
GetFCMToken();
|
|
||||||
|
DelayGetFCMToken(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void GetFCMToken()
|
/// <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());
|
CoroutineHelper.Instance.StartCoroutine(CoroutineGetFCMToken());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IEnumerator CoroutineGetFCMToken()
|
private static IEnumerator CoroutineGetFCMToken()
|
||||||
{
|
{
|
||||||
|
Debug.Log($"[Firebase] --- Start GetTokenAsync ---");
|
||||||
|
|
||||||
var task = FirebaseMessaging.GetTokenAsync();
|
var task = FirebaseMessaging.GetTokenAsync();
|
||||||
while (!task.IsCompleted)
|
while (!task.IsCompleted)
|
||||||
yield return new WaitForEndOfFrame();
|
yield return new WaitForEndOfFrame();
|
||||||
|
|
||||||
if (task.IsFaulted || task.IsCanceled)
|
if (task.IsFaulted || task.IsCanceled)
|
||||||
{
|
{
|
||||||
|
Log.I(LOG_TAG, $"--- GetTokenAsync Token Failed! {task.Status}");
|
||||||
CoroutineHelper.Instance.StartDelayed(10, GetFCMToken);
|
CoroutineHelper.Instance.StartDelayed(10, GetFCMToken);
|
||||||
}
|
}
|
||||||
else
|
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)
|
if (IPMConfig.IPM_PUSH_TOKEN != task.Result || !IPMConfig.IS_UPLOAD_DEVICE_SUCCESS)
|
||||||
{
|
{
|
||||||
IPMConfig.IPM_PUSH_TOKEN = task.Result;
|
IPMConfig.IPM_PUSH_TOKEN = task.Result;
|
||||||
|
|
@ -62,6 +110,7 @@ namespace Guru
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
private static void UploadDeviceInfo()
|
private static void UploadDeviceInfo()
|
||||||
{
|
{
|
||||||
|
|
@ -73,7 +122,7 @@ namespace Guru
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.I(LOG_TAG, "FirebaseMessage Send UploadDeviceInfo");
|
Debug.Log($"[Firebase] --- UploadDeviceInfo ---");
|
||||||
//延时重试
|
//延时重试
|
||||||
new DeviceInfoUploadRequest()
|
new DeviceInfoUploadRequest()
|
||||||
.SetRetryTimes(1)
|
.SetRetryTimes(1)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue