我的应用程序遇到了一个烦人的问题好几天了。 它是一个适用于 Android 和 iOS 的 React Native 应用程序。该应用程序接收推送通知,这些通知是使用 lambda 函数通过 Pinpoint API 发送的。除了推送通知的设计之外,几乎一切都按预期工作。我按照 Amplify 说明设置应用程序:https://aws-amplify.github.io/docs/js/push-notifications。 如果我直接从 Pinpoint 向我的应用程序发送消息,我可以附加媒体 URL(图片),这些 URL 应该按照我在推送通知中的理解显示。但他们不会...有人可以帮我解决我的问题吗?
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.notificationapp">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/notificationapp_icon"
android:roundIcon="@mipmap/notificationapp_icon_round"
android:allowBackup="false"
android:theme="@style/AppTheme">
<service android:name="com.amazonaws.amplify.pushnotification.RNPushNotificationMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<!-- [END firebase_service] -->
<!-- [START firebase_iid_service] -->
<service android:name="com.amazonaws.amplify.pushnotification.RNPushNotificationDeviceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
<receiver android:name="com.amazonaws.amplify.pushnotification.modules.RNPushNotificationBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.amazonaws.amplify.pushnotification.NOTIFICATION_OPENED"/>
</intent-filter>
</receiver>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
</application>
</manifest>
如果您需要更多信息,请询问。 提前谢谢您!
编辑:
如果我通过 lambda (SendUsersMessages) 发送推送通知并附加以下 GCMMessage 对象,ImageUrl 和 SmallImageIconUrl 将被忽略并且不会显示在通知中。
GCMMessage: {
IconReference: 'ic_stat_warning',
Action: 'OPEN_APP',
Title: row.userAssetId+", ID: "+row.title,
SilentPush: false,
Body: row.body,
ImageUrl: 'https://cdn4.iconfinder.com/data/icons/8-bit/160/bit-12-512.png',
SmallImageIconUrl: 'https://cdn4.iconfinder.com/data/icons/8-bit/160/bit-12-512.png'
}
对于 Android,图标名称似乎在库中被硬编码为名称
ic_launcher_foreground
如果您添加到 AndroidManfiest.xml
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_launcher_foreground" />
还可以使用 Android Asset Studio(或类似工具)生成图标,这将在可绘制目录下生成它们。确保它们被命名(或重命名为)
ic_launcher_foreground.png