簡體   English   中英

懶惰地要求定位服務

[英]Lazily asking for Location Services

只要我第一次安裝並啟動我的應用程序,它就會立即請求位置服務,即使尚未調用startUpdatingLocation。 那時我甚至沒有分配CLLocationManager實例。 在我實際撥打電話后,我希望這個提示可以懶得完成,這樣用戶就不會盲目地將其關閉。 最近這個流程是否因iOS而改變? 我記得曾經被懶惰地問過。 我正在使用5.1固件。

那很有意思。 我測試了您的假設,即位置管理器甚至沒有分配,但iOS位置權限對話框出現了。 我嘗試了以下故障排除。 在每個步驟之后,我在設備上運行項目,我只能在最后一步顯示位置彈出窗口。

  • 開始一個新的應用程序
  • 需要info.plist中的位置服務
  • 在info.plist中需要gps
  • 將CoreLocation鏈接到項目
  • 將核心位置導入標題
  • 為位置管理器制作並合成屬性
  • 向CLLocationManager詢問+ authorizationStatus
  • 向CLLocationManager詢問+ locationServicesEnabled
  • alloc init一個CLLocationManager實例
  • 告訴CLLocationManager開始更新位置。

只有最后一步提示了一個提示。 為了確保我甚至創建了一個viewController,它推送了第二個視圖控制器,初始化了一個CLLocationManager並開始更新該位置。 只有在推送第二個視圖控制器時才會出現權限彈出窗口。 這是在5.1上運行的最新Xcode。

我已經證明,位置服務仍然只在您嘗試轉換位置的時刻請求權限,就像在之前的SDK中一樣。 也許檢查你的代碼,也許粘貼一些,這樣我們就可以了解更多細節。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM