firebase 在iOS模拟器上测试FCM通知

xt0899hw  于 2022-12-14  发布在  iOS
关注(0)|答案(3)|浏览(288)

从Xcode 11开始,iOS模拟器现在可以接收推送通知。这可以通过执行特定命令或向模拟器提供JSON文件来完成。我从这个博客中获得了以下信息:Test Notification on Simulator .
然而,在我的用例中,我使用Firebase Cloud Messaging向我的应用(Android和iOS)的用户发送通知。我无法在模拟器上测试Firebase生成的通知,因为FCM的有效负载不同。
有没有办法做到这一点?
我找到了一个关于这个主题的similar question,但是到目前为止还没有答案。

dbf7pr2w

dbf7pr2w1#

对于在模拟器中测试推送通知,只需创建一个新文件,粘贴以下json对象并将文件保存在.apns中,然后只需将此文件拖放到模拟器中,推送即可工作。

{
    "aps" : {
        "alert" : {
            "title" : "sarunw.com",
            "body" : "A asdfsadfsadf"
        },
        "badge" : 5
    },
    "Simulator Target Bundle": "bundleId"
}

对于不同的负载,只需在Postman中使用以下JSON对象

{
 "to" : "ewebWDSSwYc:APA91bGOARO4eq9LlOfgfXPQZMK3IiRFanhzSSgkD6cVqJiPbnyuEgsvQMarDEl6Hg7_UMtFM6Hn90jyTsSENNqLNNLVjLSypR0voAO3j6orIsgabX-t0cpfJ0qpB2SzhZiXvor0r__d",
 "notification":
 {
    "title":"ABC",
    "body":"123",
    "mutable_content" : true,
    "category":"CustomSamplePush"
 },
 
 "data":
    {
        "sender_contact_code" : "+92",
     "sender_contact" : "(555) 564-8583",
     "group_name":"Testing Group",
     "type":"NewMessage",
     "type_id":"1213",
     "notification_type_id":"123213"
    }
}

通过这个url -〉https://fcm.googleapis.com/fcm/send(Type将是POST),在授权中你需要把服务器密钥放在Key Value中,这样你就可以用你自己的格式化对象发送推送通知。
你也可以使用Pusher来测试推送通知&我已经上传了截图供参考。

a2mppw5e

a2mppw5e2#

从Xcode 12(不是11)开始,您可以通过APNS有效负载注册推送和接收。如果拖放不起作用,您可以使用“终端”:

xcrun simctl push booted YOUR_BUNDLE payload.json

具有:

  • “booted”=当前模拟器
  • “payload.json”= Mac上的APNS文件。

它可能看起来像:

{
    "Simulator Target Bundle": "xxx.xxx.xx ",
    "aps":{
                    "alert":{
                        "title":"XXX",
                        "body":"YYY YYYY"
                    },
                    "badge" : 5,
                    "data":{
                        // stuff
                    },
                    "mutable-content":1
                }
}
pokxtpni

pokxtpni3#

也许你很久以前就找到了解决办法,但我是这样做的:要在应用程序中捕获FCM通知,您需要将其添加到.apns文件中,

"gcm.message_id":"20021"

下面是我在iPhone模拟器上测试FCM通知的apns文件:

{
    "Simulator Target Bundle": "XXX.XXXXXX.XXX",
    "aps": {
      "alert" : {
         "title" : "Test notif",
         "body" : "Should update widget && refresh feed"
      },
   },
   "gcm.message_id":"20021",
   "data": {}
}

相关问题