Re: [問題] 像Android的permission iOS上相對應的是?
這部份iOS跟Android有很大的不同
1
要求權限以code為主 有些可能要在Info.plist設定(但不多)
主要請以當下開發時Apple所規定的方式為主
2
一個提示框問一個功能
沒有一個提示框問所有功能
有些是用到功能時OS主動會去問
有些是開發者要去寫詢問的code
3
每個功能的關鍵字都不太一樣
我個人是習慣去看文件找函式用
==============================================================================
以定位為例
在iOS4.1以前沒有要求權限問題
只要管定位服務有沒有被開啟 有開啟就能使用
iOS3以前用 - locationServicesEnabled
iOS4以後用 + locationServicesEnabled
==============================================================================
到了iOS4.2後
APP第一次呼叫 - startUpdatingLocation 相關的函式時
OS會主動問使用者要不要允許
如果使用者沒有同意的話
之後再次使用定位相關的功能OS不會再問使用者是否允許
開發者要用 + authorizationStatus 去判斷有沒有被允許
如果沒有允許 請自行設計一個提示框要求使用者開啟
==============================================================================
隔了幾年iOS8發表
定位的權限被細分為「永遠」、「使用App期間」、「永不」三項
也不可以直接呼叫 - startUpdatingLocation 請OS主動彈提示框
要先呼叫 - requestAlwaysAuthorization 或 - requestWhenInUseAuthorization
去要求權限
然後用 delegate 的 - locationManager:didChangeAuthorizationStatus:
去接收權限更動的事件
後面一樣用 + authorizationStatus 去判斷定位功能有沒有被允許
==============================================================================
另外有一個是背景執行時可以進行定位功能
那個是在 Info.plist 的 UIBackgroundModes 中寫入 location
用法就跟前面要求權限的不一樣
※ 引述《hodsala (猴的沙拉)》之銘言:
: 因為要減少要求不必要的權限, 以免增加安裝者的疑慮
: 在Android的話可以在AndroidManifest.xml裡設定要求哪些permission
: 然後在googleplay裡安裝時就不會對安裝者要求一堆不必要的權限
: 請問這方面在iOS上是怎麼樣的流程呢?
: 1.是否有相對應的設定檔?
: 2.有朋友說要用code去要求使用者給權限,
: 如果是這樣的話,那是每觸發一個需要的功能就問一次嗎?
: 還是在第一次開啟時一個彈跳視窗全要?
: 3.可否給一些關鍵字讓我去google
: 感嗯<(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.123.148
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1440429503.A.F79.html
推
08/25 01:26, , 1F
08/25 01:26, 1F
推
08/25 03:26, , 2F
08/25 03:26, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章