【React Native】文件翻譯閱讀紀錄 - APIs - PushNotificationIOS
Facebook Open Source React Native |
PushNotificationIOS
- 將以下內容添加到項目中:node_modules / react-native / Libraries / PushNotificationIOS / RCTPushNotification.xcodeproj
- 將以下內容添加到Link Binary With Libraries:libRCTPushNotification.a
最後,要啟用對通知和註冊事件的支持,您需要擴充 AppDelegate。
在 AppDelegate.m 的頂部:
在 AppDelegate.m 的頂部:
#import <React/RCTPushNotificationManager.h>
然後在AppDelegate實現中添加以下內容:
// Required to register for notifications
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
[RCTPushNotificationManager didRegisterUserNotificationSettings:notificationSettings];
}
// Required for the register event.
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[RCTPushNotificationManager didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}
// Required for the notification event. You must call the completion handler after handling the remote notification.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
[RCTPushNotificationManager didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
}
// Required for the registrationError event.
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
[RCTPushNotificationManager didFailToRegisterForRemoteNotificationsWithError:error];
}
// Required for the localNotification event.
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
[RCTPushNotificationManager didReceiveLocalNotification:notification];
}
Methods
presentLocalNotification
scheduleLocalNotification
cancelAllLocalNotifications
removeAllDeliveredNotifications
getDeliveredNotifications
removeDeliveredNotifications
setApplicationIconBadgeNumber
getApplicationIconBadgeNumber
cancelLocalNotifications
getScheduledLocalNotifications
addEventListener
removeEventListener
requestPermissions
abandonPermissions
checkPermissions
getInitialNotification
constructor
finish
getMessage
getSound
getCategory
getAlert
getContentAvailable
getBadgeCount
getData
參考
Methods
presentLocalNotification()
PushNotificationIOS.presentLocalNotification(details);
安排localNotification立即演示。
參數:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
details | object | Yes | 見下文。 |
details是一個對象,包含:
- alertBody:通知警報中顯示的消息。
- alertAction:可操作通知下方顯示的“操作”。默認為“查看”;
- soundName:觸發通知時播放的聲音(可選)。
- isSilent:如果為true,則通知將顯示為沒有聲音(可選)。
- category:可通知操作所需的此通知的類別(可選)。
- userInfo:包含其他通知數據的可選對象。
- applicationIconBadgeNumber(可選):要顯示為應用程序圖標徽章的數字。此屬性的默認值為0,表示不顯示徽章。
scheduleLocalNotification()
PushNotificationIOS.scheduleLocalNotification(details);
安排localNotification以備將來演示。
參數:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
details | object | Yes | 見下文。 |
details 是一個對象,包含:
- fireDate:系統應發送通知的日期和時間。
- alertTitle:顯示為通知警報標題的文本。
- alertBody:通知警報中顯示的消息。
- alertAction:可操作通知下方顯示的“操作”。默認為“查看”;
- soundName:觸發通知時播放的聲音(可選)。
- isSilent:如果為true,則通知將顯示為沒有聲音(可選)。
- category:可通知操作所需的此通知的類別(可選)。
- userInfo:包含其他通知數據的可選對象。
- applicationIconBadgeNumber(可選):要顯示為應用程序圖標徽章的數字。將數字設置為0將刪除圖標徽章。
repeatInterval
: 作為字符串重複的間隔。可能的值 :minute
,hour
,day
,week
,month
,year
.
cancelAllLocalNotifications()
PushNotificationIOS.cancelAllLocalNotifications();
取消所有計劃的 localNotifications
removeAllDeliveredNotifications()
PushNotificationIOS.removeAllDeliveredNotifications();
從通知中心刪除所有已發送的通知
getDeliveredNotifications()
PushNotificationIOS.getDeliveredNotifications(callback);
為您提供仍在通知中心中顯示的應用程序通知的列表
參數:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
callback | function | Yes | 接收一系列已發送通知的函數。 |
傳遞的通知是包含以下內容的對象:
- identifier:此通知的標識符。
- title:此通知的標題。
- body:此通知的正文。
- category:此通知的類別,如果有一個。
- userInfo:包含其他通知數據的可選對象。
- thread-id:此通知的線程標識符,如果有的話。
removeDeliveredNotifications()
PushNotificationIOS.removeDeliveredNotifications(identifiers);
從通知中心刪除指定的通知
參數:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
identifiers | array | Yes | 通知標識符的數組。 |
setApplicationIconBadgeNumber()
PushNotificationIOS.setApplicationIconBadgeNumber(number);
在主屏幕上設置應用程序圖標的徽章編號
參數:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
number | number | Yes | 應用程序圖標的徽章編號。 |
getApplicationIconBadgeNumber()
PushNotificationIOS.getApplicationIconBadgeNumber(callback);
獲取主屏幕上應用程序圖標的當前徽章編號
參數:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
callback | function | Yes | 將傳遞當前徽章編號的函數。 |
cancelLocalNotifications()
PushNotificationIOS.cancelLocalNotifications(userInfo);
取消本地通知。
(可選)將取消的通知集限制為userInfo字段與userInfo參數中的相應字段匹配的通知。
(可選)將取消的通知集限制為userInfo字段與userInfo參數中的相應字段匹配的通知。
參數:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
userInfo | object | No |
getScheduledLocalNotifications()
PushNotificationIOS.getScheduledLocalNotifications(callback);
獲取當前計劃的本地通知。
Para參數
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
callback | function | Yes | 它將傳遞描述本地通知的對像數組。 |
addEventListener()
PushNotificationIOS.addEventListener(type, handler);
當應用程序在前台或後台運行時,將偵聽器附加到遠程或本地通知事件。
參數:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
type | string | Yes | 事件類型。 |
handler | function | Yes | 監聽器。 |
有效事件包括:
notification
: 收到遠程通知時觸發。將使用 PushNotificationIOS 實例調用該處理程序。localNotification
: 收到本地通知時觸發。將使用PushNotificationIOS實例調用該處理程序。register
: 當用戶註冊遠程通知時觸發。將使用表示deviceToken的十六進製字符串調用該處理程序。registrationError
: 當用戶無法註冊遠程通知時觸發。通常在APNS出現問題或設備是模擬器時發生。將使用{message:string,code:number,details:any}調用該處理程序。
removeEventListener()
PushNotificationIOS.removeEventListener(type, handler);
刪除事件偵聽器。在componentWillUnmount中執行此操作以防止內存洩漏
參數:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
type | string | Yes | 事件類型。 |
handler | function | Yes | 監聽器。 |
requestPermissions()
PushNotificationIOS.requestPermissions([permissions]);
從iOS請求通知權限,提示用戶的對話框。默認情況下,它將請求所有通知權限,但可以通過傳遞所請求權限的映射來請求這些權限的子集。支持以下權限:
alert
badge
sound
如果為方法提供了地圖,則只會請求具有真值的權限。
此方法返回一個承諾,該承諾將在用戶接受,拒絕或先前拒絕權限時解析。承諾解析為當前的許可狀態。
此方法返回一個承諾,該承諾將在用戶接受,拒絕或先前拒絕權限時解析。承諾解析為當前的許可狀態。
參數:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
permissions | array | No | alert, badge, or sound |
abandonPermissions()
PushNotificationIOS.abandonPermissions();
取消註冊通過Apple推送通知服務收到的所有遠程通知。
您應該僅在極少數情況下調用此方法,例如,當新版本的應用程序刪除對所有類型的遠程通知的支持時。用戶可以通過“設置”應用的“通知”部分暫時阻止應用接收遠程通知。通過此方法取消註冊的應用程序始終可以重新註冊。
您應該僅在極少數情況下調用此方法,例如,當新版本的應用程序刪除對所有類型的遠程通知的支持時。用戶可以通過“設置”應用的“通知”部分暫時阻止應用接收遠程通知。通過此方法取消註冊的應用程序始終可以重新註冊。
checkPermissions()
PushNotificationIOS.checkPermissions(callback);
查看當前啟用的推送權限。
Parameters:
NAME | TYPE | REQUIRED | DESCRIPTION |
---|---|---|---|
callback | function | Yes | See below. |
將使用權限對象調用回調:
alert
:booleanbadge
:booleansound
:boolean
getInitialNotification()
PushNotificationIOS.getInitialNotification();
此方法返回一個promise。如果應用程序是通過推送通知啟動的,則此承諾將解析為PushNotificationIOS類型的對象。否則,它會解析為null。
constructor()
constructor(nativeNotif);
您永遠不需要自己實例化PushNotificationIOS。收聽通知事件並調用getInitialNotification就足夠了。
finish()
finish(fetchResult);
此方法可用於通過以下方式接收的遠程通知:
application:didReceiveRemoteNotification:fetchCompletionHandler:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/#//apple_ref/occ/intfm/UIApplicationDelegate/application:didReceiveRemoteNotification:fetchCompletionHandler:
調用此命令以在遠程通知處理完成時執行。調用此塊時,傳入最能描述操作結果的獲取結果值。您必須調用此處理程序,並應盡快執行此操作。有關可能值的列表,請參見PushNotificationIOS.FetchResult。
如果您不調用此方法,則可能會限制後台遠程通知,有關它的更多信息,請參閱上面的文檔鏈接。
如果您不調用此方法,則可能會限制後台遠程通知,有關它的更多信息,請參閱上面的文檔鏈接。
getMessage()
getMessage();
getAlert的別名,用於獲取通知的主消息字符串
getSound()
getSound();
從aps對象獲取聲音字符串
getCategory()
getCategory();
從aps對象獲取類別字符串
getAlert()
getAlert();
從aps對象獲取通知的主要消息
getContentAvailable()
getContentAvailable();
從aps對象獲取內容可用的數字
getBadgeCount()
getBadgeCount();
從aps對象獲取徽章計數
getData()
getData();
獲取notif上的數據對象
0 意見