You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.iOS集成FCM时调用base引发异常,移除方法后通知无法接收

Xamarin.iOS FCM 注册失败方法异常解决办法

你遇到的Foundation.You_Should_Not_Call_base_In_This_Method异常,根源是重写FailedToRegisterForRemoteNotifications时调用了基类方法,而Xamarin.iOS明确禁止这个方法的基类调用。

解决步骤:

  • 移除基类调用:直接删掉base.FailedToRegisterForRemoteNotifications(application, error);这行代码,异常即可消除。修改后的方法示例:

    public override void FailedToRegisterForRemoteNotifications(UIApplication application, NSError error)
    {
        // 在这里添加自定义错误处理,比如记录日志
        Console.WriteLine($"远程通知注册失败: {error.LocalizedDescription}");
    }
    
  • 补全通知接收逻辑:移除方法后能获取令牌但收不到通知,需检查以下关键配置:

    1. 确保RegisteredForRemoteNotifications正确传递APNs令牌给FCM:
      public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
      {
          Messaging.SharedInstance.ApnsToken = deviceToken;
          // 可选:将令牌上传至你的业务服务器
      }
      
    2. 完善DidReceiveRemoteNotification的通知处理逻辑:
      public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
      {
          Messaging.SharedInstance.AppDidReceiveMessage(userInfo);
          // 根据通知内容做自定义业务处理
          completionHandler(UIBackgroundFetchResult.NewData);
      }
      
  • 额外验证:确认项目已正确配置FCM的plist文件,且在Capabilities中开启了推送通知权限。

内容的提问来源于stack exchange,提问作者Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:42:28