我正在整合FCM来管理iOS和Android移动应用程序的通知。对于iOS,一切运作良好:后台/前台服务器/控制台消息。
对于Android,我无法让它顺利运作。
使用控制台或发送服务器通知
1 - 当我发送通知并且应用程序处于后台时,通知中心始终显示灰色方块,而不是清单或有效负载中定义的图标。在展开通知中心之前,状态栏中的图标是正确的。
我尝试使用相同的结果指定全局回合@ drawable / resource_name或resource_name
2 - 当应用程序处于前台时,一切正常,但当应用程序处于后台时,onMessageReceived()永远不会被触发,SO会在通知中心自动显示通知,对应用程序透明,以及是否/何时用户单击通知中心的通知,引发具有DEFAULT的Activity,但getIntent()。getData()和getIntent()。getExtra()都为null,如果应用程序是,我的传递参数继续成功在前景。
的Manifest.xml
<activity
android:name=".ui.activities.MainActivity"
android:theme="@style/AppTheme.ActionBar.Transparent">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="appName"
android:scheme="appName" />
<data
android:host="subdomain.domain.com"
android:scheme="https" />
</intent-filter>
</activity>
...
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_launcher" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@android:color/black" />
<!-- Used for FireBase Messaging and Analytics -->
<service
android:name=".services.MessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<service
android:name=".services.TokenService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
有什么建议吗?
答案 0 :(得分:1)
问题1
图像资源本身存在问题,按照OneSignal文档我创建了一个新文档。
以下在线tool
特别有用问题2
FCM的Web控制台始终包含通知有效负载。它假设如果在单击本地通知时还包括数据有效负载,则数据有效负载将作为Extra(Bundle)包含在新intent中。但这种情况并没有发生。
使用API并且只包含数据有效负载一切正常,您必须按预期手动处理位置通知。
最后,由于FCM Web控制台的局限性,我决定转向另一种方法(OneSignal)。