菜鸟教程小白 发表于 2022-12-12 14:18:20

ios - 通过 FCM 消息控制台在后台向我的 iOS 应用程序发送静默通知


                                            <p><p>我想向我的 iOS 应用程序发送静默通知,为此我已在其中实现了 FCM。当应用程序在后台时,我需要在应用程序从 FCM 收到通知时执行一些操作。</p>

<p>为此,执行过程将进入调用的方法</p>

<pre><code>-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
</code></pre>

<p><br/>
但问题是,在用户点击通知之前,它不会进入此方法。</p>

<p>根据 (<a href="https://firebase.google.com/docs/cloud-messaging/http-server-ref#data" rel="noreferrer noopener nofollow">FCM documents</a>),如果我们想在后台唤醒我们的应用程序,那么我们必须传递键值为 true 的 content_available 参数。但是当我在 <a href="https://firebase.google.com/docs/cloud-messaging/ios/receive" rel="noreferrer noopener nofollow">custom data</a> 中通过您的 FCM Compose 消息控制台发送此信息时,我们的应用程序不会唤醒,也不会在后台激活,直到用户点击通知。我想我收到的所有通知都是正常通知,而不是无声通知。所以 FCM 的实现和发送通知看起来工作得很好。</p>

<p>我遵循了所有给出的 FCM 文档并引用了几乎所有可能的连接 stackoverflow 解决方案。甚至我已经关注了发送远程通知的苹果文档。最后,我通过 FCM 消息控制台发送“content_available”:true。但它并没有变成无声通知,我收到的通知是用户必须点击的正常通知,才能进入方法 <code>didReceiveRemoteNotification</code>。</p>

<p>我已经引用了很多这样的链接
   <a href="https://stackoverflow.com/questions/42275060/what-is-difference-between-remote-notification-and-silent-notification-in-ios" rel="noreferrer noopener nofollow">here</a> ,
   <a href="https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html" rel="noreferrer noopener nofollow">here</a> , &
   <a href="https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html" rel="noreferrer noopener nofollow">here</a> </p>

<p>是否有可能通过 FCM 在后台接收通知(如静默通知)?
    或任何其他实现方式?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我已经找到了解决方案。
跟着这个<a href="https://stackoverflow.com/questions/45309674/fcm-with-postman-the-request-was-missing-an-authentication-key-fcm-token/45310143#45310143" rel="noreferrer noopener nofollow">link</a>及其答案。 </p>

<p>然后像这样在postman中输入json body</p>

<pre><code>{
    &#34;to&#34;:&#34;eEBrg.... .... .... .... (FCM Token)&#34;,
    &#34;priority&#34;: &#34;normal&#34;,
    &#34;content_available&#34;: true,
    &#34;notification&#34;:{
(do not send body here if you want to send the silent notification)
      &#34;requesttype&#34;:&#34;ring&#34; // optional
    }   
}
</code></pre>

<p>...您的应用程序将在后台唤醒并进入方法 didReceiveRemoteNotification 。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 通过 FCM 消息控制台在后台向我的 iOS 应用程序发送静默通知,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/47770256/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/47770256/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 通过 FCM 消息控制台在后台向我的 iOS 应用程序发送静默通知