簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網 我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732 ...
簡要:本系列文章講會對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。
常量(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
!,歡迎大家關註我的微信公眾號,這篇文章是否被大家認可,我的衡量標準就是公眾號粉絲增長人數。歡迎大家轉載,但必須保留本人博客鏈接!