![](/img/trans.png)
[英]Ionic 5 Capacitor: Push Notification with ONESIGNAL not working on iOS
[英]Ionic Capacitor - Push Notification not making sound on iOS
我們正在使用本指南創建一個非常常規的推送通知系統。
我們一切正常,推送通知正在通過。 在 Android 上,推送通知會發出默認警報聲。 然而,在 iOS 上,沒有聲音。
我們如何配置推送通知以使用 iOS 上的默認警報聲音(我們不想創建/管理自定義警報聲音)。
我已經在capacitor.config.json
文件中配置了presentationOptions
設置。
{
"appId": "REDACTED",
"appName": "REDACTED",
"bundledWebRuntime": false,
"npmClient": "npm",
"webDir": "www",
"plugins": {
"PushNotifications": {
"presentationOptions": ["badge", "sound", "alert"]
}
}
}
在前台顯示推送通知 在 iOS 上,您可以通過在您的電容器.config.json 中提供presentationOptions 作為您可以組合的字符串數組來配置當應用程序處於前台時推送通知的顯示方式。
可能的值為:
徽章:應用程序圖標上的徽章計數已更新(默認值) 聲音:收到推送通知時設備將響鈴/振動 警報:推送通知顯示在本機對話框中 如果之前沒有任何一個,則可以提供空數組選項是需要的。 pushNotificationReceived 事件仍將與推送通知信息一起觸發。
"plugins": {
"PushNotifications": {
"presentationOptions": ["badge", "sound", "alert"]
}
}
你用什么來發送推送通知?
我遵循了相同的電容器指南並遇到了同樣的問題,然后我通過從 Firebase 雲消息傳遞控制台發送通知進行了測試,它在 iOS 上運行(通知發出聲音)。
后來我發現在我用來發送通知的代碼(firebase nodejs admin SDK)中,我沒有提供sound
屬性的值。 我認為,因為它不是必需的,並且可以在 Android 上運行,所以它也應該可以在 iOS 上運行。 我錯了!
import * as admin from 'firebase-admin';
const message: admin.messaging.MessagingPayload = {
data: {
...
},
notification: {
title: 'title',
body: 'body',
sound: 'default' // Add this line
},
};
await admin.messaging().sendToDevice(tokens, message);
文檔說這個屬性只針對Android平台,所以我一開始沒有設置。
PS:我還在capacitor.config.json
文件中添加了上面提到的presentationOptions
設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.