簡要:本系列文章講會對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。
位置Location
該模塊允許從設備讀取地理位置信息。 您的應用可以輪詢當前位置或訂閱位置更新事件。
在嘗試獲取之前,您必須先獲得訪問用戶位置的許可權。 為此,您需要使用Permissions API。 在下麵的例子中你可以看到這一點。
Expo.Location.getCurrentPositionAsync(options)
獲取設備的當前位置。
參數
option(object) -
選項圖:
- enableHighAccuracy(boolean) - 是否啟用高精度模式。對於低精度的實施可以避免消耗大量功率的地理位置提供商(如GPS)。
- maximumAge(數字) - (僅限Android)。如果指定,則允許以毫秒為單位返回先前緩存的最舊位置。如果未指定,則始終獲取新位置。在iOS上,此選項將被忽略,並且總是返回新的位置。
返回
返回包含以下欄位的對象:
coords(對象) - 位置的坐標,包含以下欄位:
- latitude (number) - 以度為單位的緯度。
- longitude (number) - 以度為單位的經度。
- altitude (number) - WGS 84參考橢球面以上的高度(米)。
- accuracy (number) - 位置的不確定性半徑,以米為單位。
- altitudeAccuracy(number) - 海拔高度值的準確度,單位為米(僅限iOS)。
- heading (number)) - 此設備的水平行進方向,以度為單位開始測量,以正北為單位並沿指南針順時針方向繼續。因此,北部是0度,東部是90度,南部是180度,依此類推。
- speed (number) - 設備的瞬時速度,單位為米/秒。
timestamp (number) - 獲取此位置信息的時間,以時間為單位,以毫秒為單位。
Expo.Location.watchPositionAsync(options, callback)
從設備訂閱位置更新。請註意,更新只會在應用程式處於前臺時發生。背景位置跟蹤計劃中,但尚未實施。
參數
options(object) -
選項圖:
- enableHighAccuracy(boolean) - 是否啟用高精度模式。對於低精度的實施可以避免消耗大量功率的地理位置提供商(如GPS)。
- timeInterval(number) - 每次更新之間以毫秒為單位等待的最短時間。
- distanceInterval(number) - 僅當位置以米為單位改變至少該距離時才接收更新。
callback(function) -
每個位置更新都會調用此函數。它只傳遞一個參數:包含以下欄位的對象:
coords(對象) - 位置的坐標,包含以下欄位:
- latitude (number) - 以度為單位的緯度。
- longitude (number) - 以度為單位的經度。
- altitude (number) - WGS 84參考橢球面以上的高度(米)。
- accuracy (number) - 位置的不確定性半徑,以米為單位。
- altitudeAccuracy(number) - 海拔高度值的準確度,單位為米(僅限iOS)。
- heading (number)) - 此設備的水平行進方向,以度為單位開始測量,以正北為單位並沿指南針順時針方向繼續。因此,北部是0度,東部是90度,南部是180度,依此類推。
- speed (number) - 設備的瞬時速度,單位為米/秒。
timespan(number) - 獲取此位置信息的時間,以時間為單位,以毫秒為單位。
返回返回具有一個欄位的訂閱對象:
- remove(function) - 不帶任何參數調用此函數來刪除此訂閱。該回調將不再被稱為位置更新。
Expo.Location.getProviderStatusAsync()
檢查位置提供者的狀態。返回
返回包含以下欄位的對象:
- locationServicesEnabled(boolean) - 是否啟用位置服務。
- gpsAvailable(boolean)(僅限android) - 如果GPS提供者可用,如果是,則位置數據將來自GPS。
- networkAvailable(boolean)(僅限android) - 如果網路提供者可用,如果是,則位置數據將來自蜂窩網路。
- passiveAvailable(boolean)(僅限android) - 如果被動提供者可用,如果是,則位置數據將被動地確定。
Expo.Location.getHeadingAsync()
從設備獲取當前的朝向信息
參數
沒有
返回
對象:
- magHeading(數字) - 以度為單位的磁北測量
- trueHeading(number) - 衡量真正的北方度(需要位置許可權,如果沒有給出則返回-1)
- 準確度(數字) - 指南針的校準程度。
- 3:高精度,2:中等精度,1:低精度,0:無
- IOS參考:3:<20度不確定度,2:<35度,1:<50度,0:> 50度
Expo.Location.watchHeadingAsync(callback)
指定從設備指南針更新
參數
callback(function) -
每個指南針更新都會調用該函數。它只傳遞一個參數:包含以下欄位的對象:
- magHeading(數字) - 以度為單位的磁北測量
- trueHeading(number) - 衡量真正的北方度(需要位置許可權,如果沒有給出則返回-1)
- accuracy (number) - 指南針的校準程度。
- 3:高精度,2:中等精度,1:低精度,0:無
- iOS參考:3:<20度不確定度,2:<35度,1:<50度,0:> 50度
返回
返回具有一個欄位的訂閱對象:
remove(function) - 不帶任何參數調用此函數來刪除此訂閱。該回調將不再被稱為位置更新。
Expo.Location.geocodeAsync(address)
將地址字元串編碼到經緯度位置。
註意:地理編碼消耗資源,必須合理使用。一次創建太多請求可能會導致錯誤,因此必須對其進行正確管理。
在Android上,您必須在使用地理編碼之前向用戶請求位置許可權(Expo.Permissions.LOCATION)。
參數adress(string) - 表示地址的字元串,例如。 “貝克街倫敦”(address (string) — A string representing address, eg. “Baker Street London”)
返回返回經過地理編碼的位置對象的數組(大多數情況下其大小為1),並包含以下欄位:
latitude (number) - 以度為單位的緯度。
longitude (number) - 以度為單位的經度。
altitude (number) - WGS 84參考橢球面以上的高度(米)。
accuracy (number) - 位置的不確定性半徑,以米為單位。
Expo.Location.reverseGeocodeAsync(location)
將地址解析為郵政地址。
註意:地理編碼消耗資源,必須合理使用。一次創建太多請求可能會導致錯誤,因此必須對其進行正確管理。
在Android上,您必須在使用地理編碼之前向用戶請求位置許可權(Expo.Permissions.LOCATION)。
參數location(object)- 表示位置的對象:
- latitude (number) - 反轉地理代碼的位置的緯度,以度為單位。
- longitude (number) - 反轉地理代碼的位置的經度,以度為單位。
返回
返回包含以下欄位的地址對象的數組(大多數情況下其大小為1):
- city (string) 城市(字元串) - 地址的城市名稱。
- street (string) 街道(字元串) - 地址的街道名稱。
- region (string) 區域(字元串) - 地址的區域/區功能變數名稱稱。
- postalCode (string) 郵政編碼(字元串) - 地址的郵政編碼。
- country (string) 國家(字元串) - 地址的國家/地區名稱。
- name (string) 名稱(字元串) - 地址的名稱,例如“塔橋”。
Expo.Location.setApiKey(apiKey)
設置Google API密鑰以使用地理編碼API。此方法對於沒有Google Play服務的Android設備非常有用,因此無需Geocoder服務。使用Google的API設置密鑰之後就可以了。參數
apiKey(string) - 從Google開發者網站收集的API密鑰。
下一張繼續介紹,這一篇主要介紹了:expo sdk api之Location!,歡迎大家關註我的微信公眾號,這篇文章是否被大家認可,我的衡量標準就是公眾號粉絲增長人數。歡迎大家轉載,但必須保留本人博客鏈接!