Expo大作战(三十二)--expo sdk api之Noifications

2021-04-20 20:26

阅读:554

技术分享图片

简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网

我猜去全部机翻+个人修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981

【之前我写过一些列关于expo和rn入门配置的东i西,大家可以点击这里查看:从零学习rn开发】

相关文章:

Expo大作战(一)--什么是expo,如何安装expo clinet和xde,xde如何使用

Expo大作战(二)--expo的生命周期,expo社区交流方式,expo学习必备资源,开发使用expo时关注的一些问题

Expo大作战(三)--针对已经开发过react native项目开发人员有针对性的介绍了expo,expo的局限性,开发时项目选型注意点等

Expo大作战(四)--快速用expo构建一个app,expo中的关键术语

Expo大作战(五)--expo中app.json 文件的配置信息

Expo大作战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式

Expo大作战(七)--expo如何使用Genymotion模拟器

Expo大作战(八)--expo中的publish以及expo中的link,对link这块东西没有详细看,大家可以来和我交流

更多>>

写在二十三章以后的话,之前的翻译,不管如何,好与不好,终究是告一段落,也把expo基础理论的东西又深入的理解了一遍,后续expo大作战系列将主要介绍expo sdk的api。


通知 Notification

提供对远程通知(也称为推送通知)和本地通知(计划和即时)相关功能的访问。

订阅通知

Expo.Notifications.addListener(listener)

参数
listener(function) - 当收到或选择远程或本地通知时使用通知对象调用的回调。

返回
一个EventSubscription对象,当您想要取消订阅侦听器时,您可以调用remove()。

相关类型

EventSubscription


从addListener返回。

  • remove()(function) - 从将来的通知中取消订阅侦听器。通知

收到通知时传递给每个事件侦听器的对象:

  • origin (string) - 选择或接收。如果用户点击通知,则选择该选项,如果在用户进入应用程序时收到通知,则选择该选项。
  • data (object) - 通知附带的任何数据。
  • remote(boolean) - 如果通知是推送通知,则为true;如果是本地通知,则为false。

通知

Expo.Notifications.getExpoPushTokenAsync()

返回

返回解析为标记字符串的Promise。该令牌可以提供给expo通知后端,以向该设备发送推送通知。请阅读推送通知指南。

Expo.Notifications.presentLocalNotificationAsync(localNotification)
立即触发本地通知。

参数
localNotification(object) - 具有LocalNotification中所述属性的对象。

返回
承诺解析为唯一的通知ID。

 

Expo.Notifications.scheduleLocalNotificationAsync(localNotification,schedulingOptions)
安排一个本地通知,以便在将来的某个特定时间或在给定的时间间隔内触发。

参数
localNotification(对象) -

具有LocalNotification中所述属性的对象。

schedulingOptions(object) -

描述何时应该触发通知的对象。

  • time (date or number) - 表示何时在Unix纪元时间触发通知或数字的Date对象。例如:(new Date())。getTime()+ 1000从现在开始是一秒。
  • 重复(可选)(字符串) - “分钟”,“小时”,“日”,“星期”,“月”或“年”。(repeat (optional) (string) — ‘minute‘‘hour‘‘day‘‘week‘‘month‘, or ‘year‘.)
  • (仅限Android)intervalMs(可选)(number) - 以毫秒为单位重复间隔

返回
承诺解析为唯一的通知ID。

Expo.Notifications.dismissNotificationAsync(localNotificationId)
仅限Android。使用给定的ID取消通知。

参数
localNotificationId(number) - 从scheduleLocalNotificationAsync或presentLocalNotificationAsync返回的分配给通知的唯一标识。

Expo.Notifications.dismissAllNotificationsAsync()
仅限Android。清除应用已呈现的所有通知。

Expo.Notifications.cancelScheduledNotificationAsync(localNotificationId)
取消与给定ID相对应的预定通知。

参数
localNotificationId(number) - 从scheduleLocalNotificationAsync或presentLocalNotificationAsync返回的分配给通知的唯一标识。

Expo.Notifications.cancelAllScheduledNotificationsAsync()
取消所有预定的通知。

相关类型(Related types)

LocalNotification
用于描述您想要呈现或计划的本地通知的对象。

title (string) - 通知的标题文本

body (string)) - 通知的正文文本。

data (optional) (object) - 通知附带的任何数据。

ios (optional) (object) - 特定于iOS的通知配置。

  • sound (optional) (boolean) - 如果为true,则播放声音。默认值:false。

android (optional) (object) - 特定于Android的通知配置。

  • sound (optional) (boolean)  - 如果为true,则播放声音。默认值:false。
  • icon (optional) (string)  - 要在通知抽屉中显示的图标的URL。
  • color (optional) (string) - 通知抽屉中通知图标的颜色。
  • color (optional) (string) - android可根据优先级显示通知,例如高优先级通知可能会显示为单向通知。
  • sticky (optional) (boolean)  - 如果为true,通知将变得粘稠并且不会被用户忽略。通知必须以编程方式解除。默认值:false。
  • vibrate (optional) (boolean or array)  - 如果为true,则振动设备。可以提供阵列来指定振动模式,例如, - [0,500]。
  • link (optional) (string) - 选择通知时打开的外部链接。

应用图标徽章编号(iOS)(App Icon Badge Number (iOS))

Expo.Notifications.getBadgeNumberAsync()
返回
返回可解析为应用程序图标上的徽章中显示的数字的承诺。当没有徽章时(或在Android上)时,此方法返回零。

Expo.Notifications.setBadgeNumberAsync(number

将应用程序图标徽章中显示的数字设置为给定数字。将该数字设置为零将清除徽章以及iOS设备通知中心的通知列表。在Android上,这个方法什么都不做。

仅限独立应用程序

Expo.Notifications.getDevicePushTokenAsync(config)
注意:大多数人不需要使用这个。使用getExpoPushTokenAsync更容易,除非您有特定的理由需要实际的设备令牌。我们也不保证iOS和Android客户端将继续期待相同的推送通知有效载荷格式。

返回可用于其他推送通知服务的本机APNS或GCM令牌。

参数

  • config(object) - 包含以下字段的对象:
  • gcmSenderId(字符串) - GCM发件人ID。

返回
承诺解析为具有以下字段的对象:

  • type (string)  - “apns”或“gcm”。
  • data (string) - 推送令牌作为字符串。

下一张继续介绍,这一篇主要介绍了:expo sdk api之Noifications!欢迎大家关注我的微信公众号,这篇文章是否被大家认可,我的衡量标准就是公众号粉丝增长人数。欢迎大家转载,但必须保留本人博客链接!

 

技术分享图片


评论


亲,登录后才可以留言!