集成 jpush-react-native 常见问题汇总 ( iOS 篇)
給 iOS 應用添加推送功能是一件比較麻煩的事情,本篇文章收集了集成 jpush-react-native 的常見問題,目的是為了幫助用戶更好地排查問題
1.收不到推送
確保是在真機上測試,而不是在模擬器
自己的應用已經在 Apple developer 給應用配置推送功能,創建推送證書 (并且保證
bundle id 與 Apple developer 上的是一致的)如果之前沒有接觸過推送證書建議看視頻來 官方集成視頻能夠獲取deviceToken 但是收不到推送, 如果是使用 xcode 8,檢查 (Project -> Target ->Capabilities ) Push Notification 選項是否已經點開,如果沒有需要點開
2.收到一條通知 JS 層會有多個 ReceiveNotification 事件
升級 jpush-react-native 到最新版本
有沒有在合適的地方 remove ReceiveNotification 事件,如果多次監聽該事件會導致重復接收
3. 如何消除 應用 icon 的角標( badge )
調用 JPushModule.setBadge 方法 如果設為 0,則表示情況角標
JPushModule.setBadge(5, (badgeNumber) => {console.log(badgeNumber) });4.開發環境能夠收到推送,生產環境收不到推送
如果是通過控制臺發送的推送,檢查環境選擇是否正確
如果是調用 REST api 發送通知,請檢查推送參數
手機應用是否是仍然是 開發環境, 如果不是請打包 Ad Hoc 來測試
5.自定義消息事件無法觸發
如果通過控制臺發送的自定義消息,確保選擇的是自定義消息,而不是通知
檢查是否監聽了 networkDidReceiveMessage 事件
6.點擊推送喚起應用的時候 OpenNotification 不調用
升級 jpush-react-native 到最新版本(舊版本還沒做緩存處理,新版本已修復)
檢查監聽 OpenNotification 的操作是否異步調用,有用戶應為在異步回調中才執行監聽操作,導致事件已經上拋到 js 層但 js 層還沒執行監聽操作的問題
7.通知在前臺展示問題
-
iOS 10 開始允許通知在前臺展示這個地方在 Native 代碼中控制
// iOS 10 Support -(void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {// RequiredNSDictionary * userInfo = notification.request.content.userInfo;if([notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {[JPUSHService handleRemoteNotification:userInfo];[[NSNotificationCenter defaultCenter] postNotificationName:kJPFDidReceiveRemoteNotification object:userInfo];} completionHandler(UNNotificationPresentationOptionAlert); // 需要執行這個方法,選擇是否提醒用戶,有 Badge、Sound、Alert 三種類型可以選擇設置 } iOS 10 之前是系統控制,應用在前臺推送不展示
8.找不到頭文件 RCTJPushModule.h
-
在 iOS 工程中如果找不到頭文件可能要在 TARGETS-> BUILD SETTINGS -> Search Paths -> Header Search Paths 添加如下如路徑
$(SRCROOT)/../node_modules/jpush-react-native/ios/RCTJPushModule/RCTJPushModule
RN 在 0.40.0 之后 不會自動加入這個路徑了,要手動加一下
9.在 iphone 5 的模擬器編譯不通過
JPush SDK 在 3.0.0 及以后版本不再支持 i386 的模擬器了血藥在 iphone 5s 以上版本中測試
10.找不到 jcore-react-native
在 jpush-react-native 1.4.4 以后版本 需要通知安裝 jcore-react-native 才能正常使用
作者:HuminiOS - 極光( JPush 為極光團隊賬號,歡迎關注)
原文:集成 jpush-react-native 常見問題匯總 ( iOS 篇)
知乎專欄:極光日報
總結
以上是生活随笔為你收集整理的集成 jpush-react-native 常见问题汇总 ( iOS 篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vijos P1449 字符串还原【密码
- 下一篇: 支付开发填坑记之支付宝