Firebase推送通知在iOS 13上不起作用

时间:2019-10-02 08:58:30

标签: swift xcode firebase push-notification ios13

Firebase推送通知在iOS 13上不起作用,但在iOS 12.4中可以正常工作。有解决办法吗?

编辑:19.0.10.1

静音推送通知无法在iOS 13上运行

8 个答案:

答案 0 :(得分:8)

快速修复解决方案:

如果您遇到在iOS 13.2.X版上接收推送通知的问题,请执行以下更改设备设置并再次检查:

设备>设置>搜索您的AppName>通知> 横幅样式> ,将其从“临时”更改为“持久” ,反之亦然。

>

现在再次发送推送通知并开始接收。

enter image description here

答案 1 :(得分:1)

可能与推送令牌从Data对象中拉出的方式有关。我对Firebase推送通知不是很熟悉,但是如果您必须将推送令牌传递给Firebase,则可能需要更改获取令牌的方式。如果Firebase拥有可处理此问题的SDK,则可能需要对其进行更新。

OneSignal讨论更改here

答案 2 :(得分:0)

Ref link here

Firebase推体示例

{
  "topic": "topic_test",
  "message": {
    "data": {
      "key": "some_value"
    },
    "notification": {
      "body": "description ~",
      "title": "title !"
    }
  },
  "options": {
    "mutableContent": true,
    "contentAvailable": true,
    "apnsPushType": "background"
  }
}

答案 3 :(得分:0)

在iOS 13之前,我有一个没有收到推送通知的问题,因为我没有在XCode-签名和功能->后台模式->后台获取中选择。选择之后,一切正常。 在iOS 13之后,我遇到了不再接收推送通知的相同问题。今天,我看到在XCode中,再次取消了“后台提取”选项。也许在更新XCode之后发生了什么?

我还没有测试。检查这是否是适合您的解决方案。

答案 4 :(得分:0)

如果委托didRegisterForRemoteNotificationsWithDeviceToken触发失败,请尝试更改网络。我将其更改为蜂窝数据并重新开始工作

答案 5 :(得分:0)

希望您添加通知委托和其他方法

首先,您可以使用下面的链接尝试邮递员

https://fcm.googleapis.com/fcm/send

在邮递员标题中 1)。授权= key =“添加Firebase服务器密钥” 2)。内容类型= application / json

在邮递员身体中作为行

{          “至”:“ 您的iPhone设备FCM音调”,          “通知”:{              “ body”:“您的通知的主体”,              “ title”:“您的通知标题”,              “ sound”:“默认”,              “ alert”:“ New”          },          “ priority”:“ high”,          “ contentAvailable”:是的,          “数据”:{              “ body”:“数据中的通知主体”,              “ title”:“标题中的通知标题”,              “ key_1”:“ key_1的值”,              “ key_2”:“ key_2的值”,          }     }

首先尝试将邮递员与上述示例结合使用,然后在iOS 13中签入

答案 6 :(得分:0)

也许是iOS13错误或更新的模式, 这将适用于iOS12和iOS13

{
"to":"",
"priority":"high",
"content_available":true,
"data":{
    "abc":"abc"
    },
"notification":{
    "body":"abc"
    }
}

Or

{
"to":"",
"priority":"high",
"content_available":true,
"data":{
    "abc":"abc"
    }
}

答案 7 :(得分:0)

更新我的Pod之后,我遇到了同样的问题。从6.18.0版开始:

不建议使用的通过FCM直接通道消息传递,通过should EstablishmentDirectChannel。而是使用APN进行下游消息传递。如果要继续使用旧版API,请向您的有效负载中添加content_available密钥,但是我们强烈建议您使用HTTP v1 API,因为它提供了完整的APN支持。已弃用的API将在Firebase 7(#4710)中删除。“ Release notes

在我的AppDelegate中,我注释掉了两行代码:

background-image: url("exampleimage.webp"); /* Firefox */
background-image: -webkit-image-set(
            url("exampleimage.webp") 1x,
            url("exampleimage@1-5x.webp") 1.5x,
            url("exampleimage@2x.webp") 2x
        );
background-image: image-set(
            url("exampleimage.jpg") 1x,
            url("exampleimage@1-5x.jpg") 1.5x,
            url("exampleimage@2x.jpg") 2x
        ) /* Safari */

当我使用设备令牌发送通知到我的设备时,一切似乎都正常。但是,将更新上传到App Store后,我看到了

0%的潜在用户有资格参加此广告系列:0

我从Firebase重新下载了GoogleService-Info.plist,并将其与xcworkspace中已经存在的内容进行了比较。 GOOGLE_APP_ID已更改。因此,替换.plist可以修复它。我不确定为什么.plist中的信息会更改。希望这可以帮助。

ps-当前Pod为6.23.0