2017-10-16 136 views
2

我想使用React Native創建iOS應用程序。該應用程序的主要功能之一是它在後臺不斷運行。它還需要使用GPS btw(萬一這很重要)。React Native iOS應用程序在重新啓動時重新啓動

我有一些開發者告訴我它不可能爲iOS做到這一點,但我已經讀過它是可行的。

這是可能在iOS環境中做的嗎?主要是,如果應用程序在手機關機時運行,您可以在設備重新啓動而不打開用戶時打開應用程序嗎?

我應該說我是一名RN新手,任何幫助都非常感謝。

回答

2

如果您的應用程序獲取位置而不是位於前臺的權限,那麼您將獲得定期更新和一些時間來處理它。

例如,如果您正在給駕駛指示。

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html#//apple_ref/doc/uid/TP40009497-CH2-SW10

如果你在後臺獲取位置不斷沒有良好的用戶的利益,你可能會被拒絕。 Apple建議改用區域監控

iOS支持將位置事件傳遞到暫停或不再運行的應用程序。在後臺交付位置事件支持其功能在沒有它們的情況下會受到損害的應用程序,因此,配置您的應用程序只在接收後臺事件時纔會爲用戶帶來實實在在的好處。例如,轉由轉動的導航應用程序需要隨時跟蹤用戶的位置,並通知用戶何時該做出下一個轉折。如果您的應用可以使用替代方法(如區域監控),則應該這樣做。

我不知道RN如何包裝這種行爲,但無論它做了什麼(或者插件可能做什麼),iOS的核心行爲就是如何在該URL中描述它。

+0

謝謝Lou。我很感激 :) – Frub

1

I(至少在iOS 11.2模擬器)是手機重啓後自動重新啓動應用程序(和位置跟蹤)昨日證實作品。

關鍵是需要startMonitoringSignificantLocationChanges才能在重新啓動後喚醒應用程序。對我來說,困難的部分是搞清楚什麼時候打開它,因爲我找不到一個可靠的方法來檢測手機何時重新啓動或運行任何代碼。但是,根據初始測試,它看起來像startMonitoringSignificantLocationChanges是獨立的,並且不會對通常的位置更新產生負面影響,所以現在我只是一直保持它的狀態,並根據Core Motion檢測到的活動切換startUpdatingLocation/stopUpdatingLocation

其他要求與後臺任何位置跟蹤相同,即處理權限並且不會處理太多。 Apple documentation說明如何檢測應用程序是否由位置事件重新啓動。