Expo大做戰(四十)--expo sdk api之 Calendar,Constants

 

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

 

相關文章
相關標籤/搜索