菜鸟教程小白 发表于 2022-12-11 18:33:45

ios - Firebase 通知适用于 android,而不是 ios (ionic 3)


                                            <p><p>使用 firebase 插件获得了带有通知功能的 iPhone 和 Android 应用。在安卓上一切正常,但我在 ios 上没有收到任何通知。我确保在 xcode 上勾选了“推送通知”,但这并不能解决问题。这可能是什么原因造成的?在我的 ionic 根文件夹中,我有 GoogleService-Info.plist,但它不会自动复制到 ios 文件夹。相反,我手动执行此操作。不知道是不是这个问题的原因?</p>

<p>提前致谢。</p>

<p>编辑:
我找到了解决方案。对于 iO,您需要手动请求许可。我认为这是默认行为。感谢您的帮助!</p>

<pre><code>if(platform.is(&#39;ios&#39;)) {
    window[&#39;FirebasePlugin&#39;].grantPermission();
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>检查消息负载:</p>

<pre><code>let params: NSMutableDictionary? = [&#34;registration_ids&#34;:&#34;ReceiverFcmToken&#34;,
                                          &#34;notification&#34; :[
                                                &#34;title&#34;: &#34;&#34;,
                                                &#34;body&#34;: &#34;&#34;] ,
                                          &#34;priority&#34;: &#34;high&#34;,
                                          &#34;data&#34; :[ &#34;message&#34;:[
                                                &#34;KEY&#34;:&#34;&#34;,
                                                &#34;NOTIType&#34;:&#34;&#34;,&#34;NOTYMessg&#34;:&#34;&#34;,
                                                &#34;SRCName&#34;:accName,
                                                &#34;SRCPhNum&#34;:accPhone]],
                                          &#34;content-available&#34; : &#34;1&#34;,
                                          &#34;sound&#34;: &#34;default&#34;]
</code></pre>

<p>如果您使用任何 API 发送到服务器,则必须分别为 ios 和 Android 提供服务器端代码,如下所示:</p>

<pre><code>if (Android)
               {
                   string tickerText = &#34;Order Message From Kirana Kart&#34;;
                   string contentTitle = &#34;Order Details&#34;;                     
                   postData = &#34;{ \&#34;registration_ids\&#34;: [ \&#34;&#34; + deviceID + &#34;\&#34; ], &#34; +
                                 &#34;\&#34;data\&#34;: {\&#34;message\&#34;:&#34; + json + &#34;}}&#34;;
               }
               else if (IOS)
               {
                   postData =
                   &#34;{ \&#34;registration_ids\&#34;: [ \&#34;&#34; + deviceID + &#34;\&#34; ], &#34; +
                      &#34;\&#34;priority\&#34;: \&#34;high\&#34;,&#34; +
                      &#34;\&#34;notification\&#34;:{ \&#34;title\&#34; : \&#34;AppName\&#34;,\&#34;body\&#34; : \&#34;You have received new order\&#34;,\&#34;noteID\&#34;:\&#34;10\&#34;,\&#34;content-available\&#34;:\&#34;1\&#34;},&#34; +
                  &#34;\&#34;data\&#34;:{\&#34;message\&#34;:&#34; + json + &#34;}}&#34;;
               }
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Firebase 通知适用于 android,而不是 ios (ionic 3),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/45856120/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/45856120/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Firebase 通知适用于 android,而不是 ios (ionic 3)