react native上的notifee組建可傳送local notification和remote push notification,可訂閱各種Event。我使用的是local notification。另一個與之對應的是expo notification,也是很好的組建,但我的app未來想用bare型別,脫離expo,所以優先選擇notifee。
官方文件:https://notifee.app , 官方文件非常清晰。
安裝注意事項:
按照官方文件的做法在iOS上執行沒問題,但是androidd在執行命令:npx react-native run-android
的時候報如下錯誤:
Could not determine the dependencies of task ':app:processDebugResources'. > Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'. > Could not find any matches for app.notifee:core:+ as no versions of app.notifee:core are available. Searched in the following locations: - https://oss.sonatype.org/content/repositories/snapshots/app/notifee/core/maven-metadata.xml - https://repo.maven.apache.org/maven2/app/notifee/core/maven-metadata.xml - file:/Users/peterfan/workspace/react_proj/CareYouHealth/node_modules/jsc-android/dist/app/notifee/core/maven-metadata.xml - https://dl.google.com/dl/android/maven2/app/notifee/core/maven-metadata.xml - https://www.jitpack.io/app/notifee/core/maven-metadata.xml - file:/Users/peterfan/workspace/react_proj/CareYouHealth/node_modules/react-native/android/app/notifee/core/maven-metadata.xml Required by: project :app > project :notifee_react-native
查了不少文件,後參考 後在工程專案的 android 目錄下的build.gradle檔案中allprojects節點下新增了新的maven url。
allprojects { // other items … repositories { // existing local repositories defined … // ADD THIS BLOCK maven { url "$rootDir/../node_modules/@notifee/react-native/android/libs" } } }
執行許可權注意事項:
1. IOS下需要先執行:await notifee.requestPermission(); 否則notification不生效。
2. Android下也需要授權。參見:https://notifee.app/react-native/docs/triggers 中的 Android 12 Limitations 部分。但按照這篇關於許可權的文章 https://blog.teamairship.com/creating-reminders-with-notifee ,是從Android 13開始的,我覺得還是按官方文件執行。