簡要:本系列文章講會對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
!,歡迎你們關注個人微信公衆號,這篇文章是否被你們承認,個人衡量標準就是公衆號粉絲增加人數。歡迎你們轉載,但必須保留本人博客連接!