Re: [問題] 像Android的permission iOS上相對應的是?

看板MacDev作者 (天龍狂想曲)時間9年前 (2015/08/24 23:18), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
這部份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
文章代碼(AID): #1LspM_zv (MacDev)
文章代碼(AID): #1LspM_zv (MacDev)