Xamarin iOS Firebase Cloud Messaging-推送通知。我正在从以下位置发送通知:我可以发送Android设备的通知(https://console.firebase.google.com中的“发送测试消息”),并且可以正常工作。Android设备令牌看起来像:
dffplp_ekKY:APA91bEVk83i3ZAA-ZB7FQZ4nlwCCxhkMdEQIH4nOiuHI7nI50VZs4Ti4Gsm-gHxtwfb6OvkQSXNI0kls71Fch2bGT6nN3lIzmZ1x1uzizlTKO9PaEibUG02CR-dGVdu6vclid4l3aDY
在iOS上的AppDelegate.cs中:
public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
{
var thisToken = deviceToken.Description;
var DeviceToken = Regex.Replace(deviceToken.ToString(), "[^0-9a-zA-Z]+", "");
}
thisToken是:
<e24cad44 37d26c68 6c3defad f3685749 70c0180e 56526ae4 8ceb9253 e280d7a9>
DeviceToken是:
e24cad4437d26c686c3defadf368574970c0180e56526ae48ceb9253e280d7a9
现在我转到https://console.firebase.google.com,尝试通过设备令牌发送测试消息,但在实际设备上什么也没有出现。当我通过Target-> bundleId发送通知时,它可以在iOS上完美运行。
我读过:https://medium.com/@kevinle/correctly-capture-ios-13-device-token-in-xamarin-3d0fa390b71b,但实际上我是根据iOS SDK 12.1编译的,而实际设备是iOS 13.3,因此新更改(奇怪的设备令牌)不会影响我的代码。
[问题是:当我尝试在iOS上使用格式化的(仅字母和数字)设备令牌(Android运行正常)或我的格式错误或无效?
我认为您应该使用此方法注册令牌
[Export("messaging:didReceiveRegistrationToken:")]
public void DidReceiveRegistrationToken(Messaging messaging, string fcmToken)
{
// Monitor token generation: To be notified whenever the token is updated.
Console.WriteLine("Received token: " + fcmToken);
// Handle here how your app is storing token locally or send it to server
// Note: This callback is fired at each app startup and whenever a new token is generated.
}