Expo大做戰(三十)--expo sdk api之Permissions(權限管理模塊),Pedometer(計步器api)

簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話很少說,接下來你看到內容,講所有來與官網html

我猜去所有機翻+我的修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流羣:597732981react

【以前我寫過一些列關於expo和rn入門配置的東i西,你們能夠點擊這裏查看:從零學習rn開發ios

相關文章:json

Expo大做戰(一)--什麼是expo,如何安裝expo clinet和xde,xde如何使用api

Expo大做戰(二)--expo的生命週期,expo社區交流方式,expo學習必備資源,開發使用expo時關注的一些問題promise

Expo大做戰(三)--針對已經開發過react native項目開發人員有針對性的介紹了expo,expo的侷限性,開發時項目選型注意點等bash

Expo大做戰(四)--快速用expo構建一個app,expo中的關鍵術語微信

Expo大做戰(五)--expo中app.json 文件的配置信息app

Expo大做戰(六)--expo開發模式,expo中exp命令行工具,expo中如何查看日誌log,expo中的調試方式less

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

相關文章
相關標籤/搜索