給 iOS 應用添加推送功能是一件比較麻煩的事情,本篇文章收集了集成 jpush-react-native 的常見問題,目的是為了幫助用戶更好地排查問題
調用 JPushModule.setBadge 方法 如果設為 0,則表示情況角標
JPushModule.setBadge(5, (badgeNumber) => {
console.log(badgeNumber)
});
// iOS 10 Support
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {
// Required
NSDictionary * 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 工程中如果找不到頭文件可能要在 TARGETS-> BUILD SETTINGS -> Search Paths -> Header Search Paths 添加如下如路徑
$(SRCROOT)/../node_modules/jpush-react-native/ios/RCTJPushModule/RCTJPushModule
RN 在 0.40.0 之後 不會自動加入這個路徑了,要手動加一下
JPush SDK 在 3.0.0 及以後版本不再支持 i386 的模擬器了血藥在 iphone 5s 以上版本中測試
作者:HuminiOS - 極光
原文:集成 jpush-react-native 常見問題匯總 (iOS 篇)
知乎專欄:極光日報