我编写了一个Flutter应用程序,无法使用自定义声音配置Firebase云消息传递。我收到通知,但是当应用程序处于后台时,它们会带有默认声音。在前台,我使用本地通知库,并且运行良好,但是我也需要在后台工作。
这是我发送给云消息传递的内容:
{
"to":"<firebase_token>",
"notification":{
"sound":"arrive",
"title":"My Title",
"body":"My body"
},
"data":{
"click_action":"FLUTTER_NOTIFICATION_CLICK",
"status":"done",
"screen":"screenA",
"message":"ACTION"
},
"apns":{
"headers":{
"apns-priority":"5",
"apns-push-type":"background"
},
"payload":{
"aps":{
"content-available":1
}
}
}
}
这是我工作的本地通知配置:
void showNotification({
String title,
String body,
}) {
var androidPlatformChannelSpecifics = AndroidNotificationDetails(
'your channel id',
'your channel name',
'your channel description',
importance: Importance.Max,
priority: Priority.Max,
ticker: 'ticker',
playSound: true,
sound: RawResourceAndroidNotificationSound('arrive')
);
var iOSPlatformChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics = NotificationDetails(
androidPlatformChannelSpecifics,
iOSPlatformChannelSpecifics,
);
notifications.show(0, title, body, platformChannelSpecifics,
payload: 'Custom_Sound',);
}
因此,本地通知库会看到我的自定义声音,但是云消息传递将播放默认声音。可能是什么问题呢?
我的声音位于:android \ app \ src \ main \ res \ raw \ arrive.mp3
我的进口是:
flutter_local_notifications: ^1.4.3
firebase_messaging: ^6.0.16
扑医生:
[√] Flutter (Channel stable, v1.12.13+hotfix.9, on Microsoft Windows [Version 10.0.18362.836], locale hu-HU)
• Flutter version 1.12.13+hotfix.9 at C:\flutter src\flutter
• Framework revision f139b11009 (8 weeks ago), 2020-03-30 13:57:30 -0700
• Engine revision af51afceb8
• Dart version 2.7.2
[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at C:\Users\koros\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 28.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
• All Android licenses accepted.
[√] Android Studio (version 3.4)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 35.3.1
• Dart plugin version 183.6270
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
[√] VS Code (version 1.45.1)
• VS Code at C:\Users\koros\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.10.2
[√] Connected device (1 available)
• SM A520F • 52003aa8f4ea64d5 • android-arm64 • Android 8.0.0 (API 26) (emulator)
• No issues found!
您可以编写用于Firebase消息传递的后台处理程序方法,然后可以在后台处理程序中调用showNotification方法。示例代码:
Future<dynamic> onBackgroundMessageHandler(Map<String, dynamic> message) async {
if (message['data'] != null) {
final data = message['data'];
final title = data['title'];
final body = data['message'];
showNotification(title, body);
}
return Future<void>.value();
}
FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
_firebaseMessaging.configure(onBackgroundMessage: Platform.isIOS ? null : onBackgroundMessageHandler);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句