簡要:本系列文章講會對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。
許可權(Permissions)
當添加可訪問用戶設備上潛在敏感信息的功能(例如其位置)時,或可能向其發送可能不需要的推送通知時,您需要首先詢問用戶的許可。 除非你已經征求他們的許可,否則不需要(Unless you’ve already asked their permission, then no need)。 所以我們有許可權模塊。
如果您正在將應用程式部署到Apple iTunes Store,則應考慮嚮應用程式添加其他元數據,以便自定義系統許可權對話框並解釋您的應用程式需要許可權的原因。 請參閱App Store部署指南中的更多信息。
Expo.Permissions.getAsync(type)
確定您的應用是否已被授予對提供的許可權類型的訪問許可權。
參數
type(string) - 許可權的名稱。
返回
返回使用關於許可權的信息解決的Promise,包括狀態,到期和範圍(如果它適用於許可權類型)。(Returns a
Promise
that is resolved with the information about the permission, including status, expiration and scope (if it applies to the permission type).)async function alertIfRemoteNotificationsDisabledAsync() { const { Permissions } = Expo; const { status } = await Permissions.getAsync(Permissions.NOTIFICATIONS); if (status !== 'granted') { alert('Hey! You might want to enable notifications for my app, they are good.'); } }
Expo.Permissions.askAsync(type)
提示用戶獲得許可。 如果他們已經授予訪問許可權,則回應將成功。
參數
type(string) - 許可權的名稱。
返回
返回使用關於許可權的信息解決的Promise,包括狀態,到期和範圍(如果它適用於許可權類型)。
async function getLocationAsync() { const { Location, Permissions } = Expo; const { status } = await Permissions.askAsync(Permissions.LOCATION); if (status === 'granted') { return Location.getCurrentPositionAsync({enableHighAccuracy: true}); } else { throw new Error('Location permission not granted'); } }
Expo.Permissions.NOTIFICATIONS
本地和推送通知的許可權類型。
註意:在iOS上,這不會消除未確定 拒絕,因此只會返回已授予或未確定。 這是由於底層本機API的實現方式所致。
Expo.Permissions.LOCATION
位置訪問許可權類型。Expo.Permissions.CAMERA
照片和視頻拍攝的許可類型。Expo.Permissions.AUDIO_RECORDING
音頻錄製的許可類型。Expo.Permissions.CONTACTS
閱讀聯繫人的許可權類型。Expo.Permissions.CAMERA_ROLL
用於讀取或寫入相機的許可類型。
計步器(Pedometer)
使用Core Motion(iOS)或Google Fit(Android)獲取用戶的步數。
Expo.Pedometer.isAvailableAsync()
確定計步器是否可用。返回
返回一個可解析為布爾值的承諾,指示計步器是否在此設備上可用。
Expo.Pedometer.getStepCountAsync(start, end)
獲取兩個日期之間的步數。
參數
start(datetime) - 指示測量步驟的範圍開始的日期。
end(end) - 指示測量步驟的範圍結束的日期。
返回返回一個使用steps鍵解析為Object的promise,它是一個Number,表示在給定日期之間所採用的步數。
Expo.Pedometer.watchStepCount(callback)
訂閱計步器更新。參數
回調函數(callback)當新的步數數據可用時調用的回調函數。 該回調提供了一個單個參數,該參數是具有步驟鍵的對象。
返回一個EventSubscription對象,當您想要取消訂閱偵聽器時,您可以調用remove()。
下一張繼續介紹,這一篇主要介紹了:expo sdk api之Permissions(許可權管理模塊)
,
Pedometer(計步器api),歡迎大家關註我的微信公眾號,這篇文章是否被大家認可,我的衡量標準就是公眾號粉絲增長人數。歡迎大家轉載,但必須保留本人博客鏈接!