简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话很少说,接下来你看到内容,讲所有来与官网html
我猜去所有机翻+我的修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981react
【以前我写过一些列关于expo和rn入门配置的东i西,你们能够点击这里查看:从零学习rn开发】android
相关文章:ios
Expo大做战(一)--什么是expo,如何安装expo clinet和xde,xde如何使用json
Expo大做战(二)--expo的生命周期,expo社区交流方式,expo学习必备资源,开发使用expo时关注的一些问题api
Expo大做战(三)--针对已经开发过react native项目开发人员有针对性的介绍了expo,expo的局限性,开发时项目选型注意点等数组
Expo大做战(四)--快速用expo构建一个app,expo中的关键术语微信
Expo大做战(五)--expo中app.json 文件的配置信息session
Expo大做战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式app
Expo大做战(七)--expo如何使用Genymotion模拟器
Expo大做战(八)--expo中的publish以及expo中的link,对link这块东西没有详细看,你们能够来和我交流
写在二十三章之后的话,以前的翻译,无论如何,好与很差,终究是告一段落,也把expo基础理论的东西又深刻的理解了一遍,后续expo大做战系列将主要介绍expo sdk的api。
常量(Constants)
系统信息在应用的整个生命周期中保持不变。
Expo.Constants.appOwnership
Returnsexpo
,standalone
, orguest
.。若是是expo,这个体验就在expo客户端内部运行。若是是standalone,它是一个standalone app.。若是是guest,它已经过独立应用程序的连接打开。Expo.Constants.expoVersion
当前正在运行的Expo客户端的版本字符串。Expo.Constants.deviceId
expo客户端的特定设备和安装惟一的标识符。Expo.Constants.deviceName
设备类型的人类可读名称。Expo.Constants.deviceYearClass
此设备的设备年份类别。Expo.Constants.getWebViewUserAgentAsync()
获取将包含在此设备上运行的Web视图发送的请求中的用户代理字符串。这可能与您在JS提取请求中提供的用户代理可能不一样。Expo.Constants.isDevice
若是应用程序在设备上运行,则为true;若是在模拟器或仿真器中运行,则为false。Expo.Constants.platform
IOS
- buildNumber
此应用程序中CFBundleVersion的嵌入Info.plist值中指定的内部版本号。在独立应用程序中,您可使用app.json中的ios.buildNumber值进行设置。这可能与Expo.Constants.manifest.ios.buildNumber中的值不一样,由于清单能够在空中更新(热更新),而对于给定的本机二进制文件,此值永远不会更改。
- platform
该设备的Apple内部模型标识符,例如iPhone1,1。
- model
该设备的人可读模型名称,例如iPhone 7 Plus。
- userInterfaceIdiom
此设备的用户界面习惯用法,即应用程序是在iPhone仍是iPad上运行。目前支持的值是手机和平板电脑。 Apple TV和CarPlay将显示为不受支持。
- systemVersion
在此设备上运行的iOS版本,例如10.3。
Android
- versionCode
app.json中由android.versionCode设置的版本代码。
- Expo.Constants.sessionId
一个字符串,对于当前应用程序会话是惟一的。它在应用程序之间以及同一应用程序的屡次启动中有所不一样。
- Expo.Constants.statusBarHeight
设备的默认状态栏高度。在使用位置跟踪或打电话时,不考虑更改。
- Expo.Constants.systemFonts
当前设备上可用的系统字体名称列表。
- Expo.Constants.manifest
该应用的清单对象。
- Expo.Constants.linkingUri
因为深层连接而打开应用程序时,URI的前缀不包含深层连接部分。该值取决于Expo.Constants.appOwnership:若是您的应用程序在expo客户端中独立运行,则可能会有所不一样。
日历(Calendar)
提供一个用于与设备的系统日历,事件,提醒和相关记录交互的API。
查看此页面的底部,获取此API中使用的对象的全部可能字段的完整列表。
Expo.Calendar.getCalendarsAsync(EntityType)
获取一组日历对象,其中包含有关设备上存储的不一样日历的详细信息。参数
entityType(string) - (仅iOS)非必须填写字段,但若是定义,则将返回的日历过滤为特定的实体类型。可能的值是Expo.Calendar.EntityTypes.EVENT(适用于Calendar应用程序中显示的日历)和Expo.Calendar.EntityTypes.REMINDER(适用于提醒应用程序)。返回
与所提供的实体类型匹配的日历对象数组(若是提供)。Expo.Calendar.createCalendarAsync(details)
在设备上建立一个新日历,容许事件稍后添加并显示。参数
details(object) -要建立日历的详细信息地图(请参阅下面有关这些字段的说明):
- title(string) - 必需
- color(string) - 必需
- entityType(string) - 必需(仅iOS)
- sourceId(string) - 必需(仅iOS)。要用于日历的源的ID。可能与任何其余本地存储日历的来源相同。
- source(object) - 必需(仅限Android)。表示要用于日历的源的对象。
- isLocalAccount(boolean) - 此源是不是本地电话账户。若是type未定义,则必须为true。
- name(string) - 必需。拥有此日历并用于将日历同步到设备的账户的名称。
- type(string) - 拥有此日历并用于将其同步到设备的账户的类型。若是isLocalAccount是虚假的,那么必须定义它,而且必须与设备上的账户一块儿匹配名称,不然操做系统将删除日历。
- name(string) - 必需(仅限Android)
- ownerAccount(string) - 必需(仅限Android)
- timeZone(string) - (仅限Android)
- allowedAvailabilities(array) - (仅限Android)
- allowedReminders(array) - (仅限Android)
- allowedAttendeeTypes(array) - (仅限Android)
- isVisible(boolean) - (仅限Android)
- isSynced(boolean) - (仅限Android)
- accessLevel(string) - (仅限Android)
返回
表明新建立的日历的ID的字符串。Expo.Calendar.updateCalendarAsync(id,details)
更新设备上存储的现有日历的详细信息。要删除一个属性,明确地将其设置为null。参数
id(string) - 要更新的日历的ID。须要。details(object) -
要更新的属性的地图(请参阅下面的这些字段的说明):
- title (string)(字符串)
- sourceId(string) - (仅iOS)
- color(string) - (仅iOS)
- name(string) - (仅限Android)
- isVisible(boolean) - (仅限Android)
- isSynced(boolean) - (仅限Android)
Expo.Calendar.deleteCalendarAsync(ID)
从设备中删除现有的日历和全部关联的事件/提醒/与会者(events/reminders/attendees)。谨慎使用(Use with caution.)。参数
id(string) - 要删除的日历的ID。Expo.Calendar.getEventsAsync(calendarIds,startDate,endDate)
返回指定时间段内给定日历集中的全部事件。参数
calendarIds(array) - 要搜索事件的日历的ID的数组。必需。startDate(Date) - 搜索中的事件的时间段开始。必需。
endDate(Date) - 搜索中的事件的时间段结束。必需。
返回
与搜索条件匹配的Event对象数组。Expo.Calendar.getEventAsync(id,recurringEventOptions)
返回由ID选择的特定事件。若是须要按期事件的特定实例,则还必须提供此实例的开始日期,由于按期事件的实例在iOS或Android上没有本身的惟一且稳定的ID。参数
id(string) - 要返回的事件的ID。须要。recurringEventOptions(object) -
重复性事件的选项图:
- instanceStartDate(Date) - 若是查找循环事件的单个实例,则表示所需实例的开始时间的Date对象。若是没有提供,而且id表示重复事件,则默认状况下会返回该事件的第一个实例。
返回
与提供的条件匹配的Event对象(若是存在)。Expo.Calendar.createEventAsync(calendarId,details)
在指定日历上建立新事件。参数
calendarId(字符串) - 要在其中建立此事件的日历的ID。必需。details(details) -
要建立的事件的详细信息图(有关这些字段的说明,请参阅下面的内容):
- title(string)
- startDate(Date) - 必需。
- endDate(Date) - Android上须要。
- allDay(boolean)
- location (string)
- notes (string)
- alarms (Array)
- recurrenceRule(RecurrenceRule)
- availability (string)
- ttimeZone (string) - Android上必需的。
- endTimeZone(string) - (仅限Android)
- url(string) - (仅iOS)
- organizerEmail(string) - (仅限Android)
- accessLevel(string) - (仅限Android)
- guestsCanModify(boolean) - (仅限Android)
- guestsCanInviteOther(boolean) - (仅限Android)
- guestsCanSeeGuests(boolean) - (仅限Android)
返回
表明新建立事件ID的字符串。Expo.Calendar.updateEventAsync(id,details,recurrentEventOptions)
更新设备上存储的现有日历的详细信息。要删除一个属性,明确地将其设置为null。参数
id(字符串) - 要更新的事件的ID。须要。details(object) -
要更新的属性的地图(请参阅下面的这些字段的说明):
- title(string)
- startDate(Date)
- endDate(Date)
- allDay(布尔)
- Location(string)
- notes(string)
- alarms (Array)
- alarms (Array)
- alarms (Array)
- timeZone(string)
- endTimeZone(string) - (仅限Android)
- url(string) - (仅iOS)
- organizerEmail(string) - (仅限Android)
- accessLevel(string) - (仅限Android)
- guestsCanModify(boolean) - (仅限Android)
- guestsCanInviteOther(boolean) - (仅限Android)
- guestsCanSeeGuests(boolean) - (仅限Android)
recurrentEventOptions(对象) -
重复性事件的选项图:
- instanceStartDate(Date) - 若是想更新循环事件的单个实例,则表示所需实例的开始时间的Date对象。若是未提供此信息,而且id表明周期性事件,则该事件的第一个实例将默认更新。
- futureEvents(boolean) - 是否也应更新循环系列中的将来事件。若是为true,则将给定的更改应用于由instanceStartDate指定的循环实例以及系列中的全部将来事件。若是为false,则仅将给定更改应用于由instanceStartDate指定的实例。
Expo.Calendar.deleteEventAsync(id,recurringEventOptions)
从设备中删除现有的事件。谨慎使用。参数
id(string) - 要删除的事件的ID。须要。recurrentEventOptions(对象) -
重复性事件的选项图:
- instanceStartDate(Date) - 表示指望实例的开始时间的Date对象,若是想要删除循环事件的单个实例。若是没有提供,而且id表明周期性事件,则该事件的第一个实例将在默认状况下被删除。
- futureEvents(boolean) - 是否也应删除循环系列中的将来事件。若是为true,将删除instanceStartDate指定的实例以及系列中全部未来的事件。若是为false,则只会删除instanceStartDate指定的实例。
Expo.Calendar.getAttendeesForEventAsync(eventId,recurringEventOptions)
获取给定事件(或循环事件的实例)的全部与会者。参数
eventId(字符串) - 要返回参加者的事件的ID。须要。recurringEventOptions(object) -
重复性事件的选项图:
- instanceStartDate(Date) - 若是查找循环事件的单个实例,则表示所需实例的开始时间的Date对象。若是未提供,而且eventId表示重复性事件,则该事件的第一个实例的参与者将默认返回。
返回
与指定事件关联的参与者对象数组。Expo.Calendar.createAttendeeAsync(eventId,details)
仅在Android上提供。建立新的记录并将其添加到指定的事件中。请注意,若是eventId指定了重复事件,则会将与会者添加到事件的每一个实例。
参数
eventId(string) - 要将此与会者添加到的事件的ID。须要。details(object) -
要建立的与会者的详细信息地图(请参阅下面有关这些字段的说明):
- id(字符串)必需。
- email (string) 必需。
- name (string)
- role (string) 必需。
- status (string) 必需。
- type (string) 必需。
返回
表明新建立的与会者记录ID的字符串。Expo.Calendar.updateAttendeeAsync(id,details)
仅在Android上提供。更新现有的与会者记录。要删除一个属性,明确地将其设置为null。参数
id(字符串) - 要更新的与会者记录的ID。须要。details(object) -
要更新的属性的地图(请参阅下面的这些字段的说明):
- id(string)
- email(string)
- name(string)
- role(string)
- status(string)
- type(string)
Expo.Calendar.deleteAttendeeAsync(ID)
仅在Android上提供。从设备中删除现有的与会者记录。谨慎使用。参数
id(string) - 要删除的与会者的ID。Expo.Calendar.getRemindersAsync(calendarIds,status,startDate,endDate)
仅适用于iOS。返回与提供的条件匹配的提醒列表。参数
- calendarIds(array) - 要搜索提醒的日历的ID列表。必需。
- status(string) - Calendar.ReminderStatus.COMPLETED或Calendar.ReminderStatus.INCOMPLETE之一。
- startDate(Date) - 搜索提醒的时间段开始。若是定义了状态,则为必需。
- endDate(Date) - 搜索提醒的时间段结束。若是定义了状态,则为必需。
返回
与搜索条件匹配的Reminder对象数组。Expo.Calendar.getReminderAsync(ID)
仅适用于iOS。返回由ID选择的特定提醒。参数
id(string) - 要返回的提醒的ID。须要。返回
与提供的ID匹配的提醒对象(若是存在)。Expo.Calendar.createReminderAsync(calendarId,details)
仅适用于iOS。在指定的日历上建立新的提醒。参数
calendarId(字符串) - 建立此提醒的日历的ID。必需。details(object) -
要建立提醒的详细信息地图:(请参阅下面有关这些字段的说明)
- title(string)
- startDate(Date)
- dueDate(Date)
- completed (boolean)
- completionDate(Date)
- location (string)
- notes (string)
- alarms (array)
- recurrenceRule (RecurrenceRule)
- timeZone (string)
- url (string)
返回
表明新建立的提醒ID的字符串。Expo.Calendar.updateReminderAsync(id,details)
仅适用于iOS。更新设备上存储的现有提醒的详细信息。要删除一个属性,明确地将其设置为null。参数
id(字符串) - 要更新的提醒的ID。须要。details(object) -
要更新的属性的地图(请参阅下面的这些字段的说明):
- title(string)
- startDate(Date)
- dueDate(Date)
- completionDate(Date) - 设置非空日期的此属性将自动将提醒的完成值设置为true。
location (string)
notes (string)
alarms (array)
recurrenceRule (RecurrenceRule)
timeZone (string)
url (string)
Expo.Calendar.deleteReminderAsync(ID)
仅适用于iOS。从设备中删除现有的提醒。谨慎使用。参数
id(字符串) - 要删除的提醒的ID。须要。Expo.Calendar.getSourcesAsync()
仅适用于iOS。返回
一个Source对象数组的全部来源存储在设备上的日历。Expo.Calendar.getSourceAsync(ID)
仅适用于iOS。返回由ID选择的特定源。参数
id(字符串) - 要返回的源的ID。须要。返回
与提供的ID匹配的Source对象(若是存在)。Expo.Calendar.openEventInCalendar(ID)
仅在Android上提供。发送意图在OS日历应用程序中打开指定的事件。参数
id(字符串) - 要打开的事件的ID。须要。
下一张继续介绍,这一篇主要介绍了:expo sdk api之 Calendar,
Constants
!,欢迎你们关注个人微信公众号,这篇文章是否被你们承认,个人衡量标准就是公众号粉丝增加人数。欢迎你们转载,但必须保留本人博客连接!