非常教程

React native参考手册

APIs

PushNotificationIOS

只有原生代码的项目

本部分仅适用于react-native init使用Create React Native App创建的项目或已经退出的项目。有关弹出的更多信息,请参阅创建React Native App存储库的指南。

处理您的应用的推送通知,包括权限处理和图标徽章号码。

要启动并运行,请使用Apple和您的服务器端系统配置您的通知。

手动链接PushNotificationIOS库

  • 将以下内容添加到您的项目中: node_modules/react-native/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj
  • 将以下内容添加到Link Binary With LibrarieslibRCTPushNotification.a

最后,为了支持notificationregister事件你需要增加你的AppDelegate。

在您的顶部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];
   }

方法

=(NewData, NoData, ResultFailed, }, static, (, :)

static scheduleLocalNotification(details)

为将来的演示安排localNotification。

细节是一个对象,包含:

  • fireDate :系统发送通知的日期和时间。
  • alertTitle :显示为通知警报标题的文本。
  • alertBody :通知警报中显示的消息。
  • alertAction:“动作”显示在可执行通知下。默认为“查看”;
  • soundName :通知被触发时播放的声音(可选)。
  • isSilent :如果为true,则通知将显示为没有声音(可选)。
  • category :此通知的类别,可执行通知所需(可选)。
  • userInfo :包含其他通知数据的可选对象。
  • applicationIconBadgeNumber(可选):显示为应用图标徽章的号码。将该数字设置为0将删除图标徽章。
  • repeatInterval:作为字符串重复的时间间隔。可能的值:minutehourdayweekmonthyear

static cancelAllLocalNotifications()

取消所有预定的本地通知

static removeAllDeliveredNotifications()

从通知中心删除所有已发送的通知

static getDeliveredNotifications(callback)

为您提供仍在通知中心中显示的应用通知列表

@param回调函数接收传递的通知数组

交付的通知是一个对象,其中包含:

  • identifier :此通知的标识符。
  • title :这个通知的标题。
  • body :此通知的正文。
  • category :这个通知的类别,如果有的话。
  • userInfo :包含其他通知数据的可选对象。
  • thread-id :这个通知的线程标识符,如果有的话。

static removeDeliveredNotifications(identifiers)

从通知中心删除指定的通知

@参数标识符通知标识符数组

static setApplicationIconBadgeNumber(number)

在主屏幕上设置应用程序图标的徽章号码

static getApplicationIconBadgeNumber(callback)

获取主屏幕上应用程序图标的当前徽章编号

static cancelLocalNotifications(userInfo)

取消本地通知。

可以选择将取消通知的集合限制为那些userInfo字段与userInfo参数中相应字段匹配的通知。

static getScheduledLocalNotifications(callback)

获取当前计划的本地通知。

static addEventListener(type, handler)

当应用程序在前台或后台运行时,将侦听程序附加到远程或本地通知事件。

有效事件是:

  • notification:收到远程通知时触发。处理程序将被调用一个实例PushNotificationIOS
  • localNotification:收到本地通知时触发。处理程序将被调用一个实例PushNotificationIOS
  • register:当用户注册远程通知时触发。处理程序将使用代表deviceToken的十六进制字符串进行调用。
  • registrationError:当用户未能注册远程通知时触发。通常在APNS出现问题或设备是模拟器时发生。处理程序将被调用{message:string,code:number,details:any}。

static removeEventListener(type, handler)

删除事件侦听器。这样做是componentWillUnmount为了防止内存泄漏

static requestPermissions(permissions?)

请求来自iOS的通知权限,提示用户的对话框。默认情况下,它将请求所有通知权限,但可以通过传递请求权限的映射来请求这些权限的子集。支持以下权限:

  • alert
  • badge
  • sound

如果向该方法提供了映射,则只会请求具有真值的权限。

此方法返回一个承诺,该承诺将在用户接受,拒绝或权限以前被拒绝时解决。承诺解析为许可的当前状态。

static abandonPermissions()

取消注册通过Apple推送通知服务收到的所有远程通知。

您应该仅在极少数情况下调用此方法,例如应用程序的新版本取消了对所有类型远程通知的支持。用户可以暂时阻止应用通过“设置”应用的“通知”部分接收远程通知。未通过此方法注册的应用程序始终可以重新注册。

static checkPermissions(callback)

查看当前启用了哪些推送权限。callback将被一个permissions对象调用:

  • alert :布尔
  • badge :布尔
  • sound :布尔

static getInitialNotification()

如果应用程序是通过推送通知启动的,则此方法返回解析为通知对象的promise null

constructor(nativeNotif)

你永远不需要实例化PushNotificationIOS你自己。听取notification事件和调用getInitialNotification就足够了

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()

getAlert获取通知的主消息字符串的别名

getSound()

aps对象中获取声音字符串

getCategory()

aps对象中获取类别字符串

getAlert()

aps对象获取通知的主要消息

getContentAvailable()

aps对象中获取内容可用的编号

getBadgeCount()

aps对象中获取徽章计数编号

getData()

获取notif上的数据对象

React native

React Native 是一个 JavaScript 的框架,用来撰写实时的、可原生呈现 iOS 和 Android 的应用。

主页 https://facebook.github.io/react-native/
源码 https://github.com/facebook/react-native
发布版本 0.49

React native目录

1.开始 | Getting Started
2.指南 | Guides
3.APIs
4.组件:ActivityIndicator | Components: ActivityIndicator
5.组件:按钮 | Components: Button
6.组件:CheckBox | Components: CheckBox
7.组件:DatePickerIOS | Components: DatePickerIOS
8.组件:DrawerLayoutAndroid | Components: DrawerLayoutAndroid
9.组件:FlatList | Components: FlatList
10.组件:图像 | Components: Image
11.组件:KeyboardAvoidingView | Components: KeyboardAvoidingView
12.Components: ListView
13.Components: MaskedViewIOS
14.Components: Modal
15.Components: NavigatorIOS
16.Components: Picker
17.Components: PickerIOS
18.Components: ProgressBarAndroid
19.Components: ProgressViewIOS
20.Components: RefreshControl
21.Components: ScrollView
22.Components: SectionList
23.Components: SegmentedControlIOS
24.Components: Slider
25.Components: SnapshotViewIOS
26.Components: StatusBar
27.Components: Switch
28.Components: TabBarIOS
29.Components: TabBarIOS.Item
30.Components: Text
31.Components: TextInput
32.Components: ToolbarAndroid
33.Components: TouchableHighlight
34.Components: TouchableNativeFeedback
35.Components: TouchableOpacity
36.Components: TouchableWithoutFeedback
37.Components: View
38.Components: ViewPagerAndroid
39.Components: VirtualizedList
40.Components: WebView
41.创建 | Contributing
42.指南(Android) | Guides (Android)
43.指南(IOS) | Guides (iOS)
44.其他 | Miscellaneous