簡體   English   中英

啟動應用后,由於進入了受監視區域,因此使用Flurry記錄了事件

[英]Recording events with Flurry after app was launched due to a monitored region being entered

情況如下。 我有一個iOS應用程序,該應用程序使用CLLocationManager的區域監視功能在輸入預定義的地理區域時通知該應用程序。 區域監視的工作方式是,即使應用程序先前已終止,也可以將用戶進入區域的通知通知給該應用程序。 基本上,操作系統會在進入區域時啟動應用程序(而不將其置於前台),並使應用程序有機會對輸入的區域做出響應。

我想做的是在輸入區域時使用Flurry記錄事件。 目前,它似乎不起作用,因為事件甚至在幾天后都沒有出現在Flurry中。 我應該注意,我已經測試了以下兩項: i)當用戶正常啟動應用程序時Flurry事件日志正常運行;以及ii)我的應用程序確實在接收進入和退出的區域事件(我每次都使用本地通知)進入或退出該區域)。

我的懷疑是,它與應用程序委托生命周期有關,這與由於進入區域而啟動應用程序與由於用戶啟動應用程序而導致啟動應用程序不同。 我的第一個懷疑是在后台啟動應用程序時未調用application:didFinishLaunchingWithOptions: 因為我對[Flurry startSession:@"my_key"]調用是在application:didFinishLaunchingWithOptions:方法中,所以這已經可以解釋了。 但是,Apple文檔startMonitoringForRegion:desiredAccuracy:建議將application:didFinishLaunchingWithOptions:實際上稱為:

如果您開始監視區域,並且隨后終止了您的應用程序,則如果越過區域邊界,系統會自動將其重新啟動到后台。 在這種情況下,傳遞給應用程序委托的application:didFinishLaunchingWithOptions:方法的選項字典包含鍵UIApplicationLaunchOptionsLocationKey,以指示由於位置相關事件而啟動了您的應用程序。

盡管我使用的是startMonitoringForRegion:而不是startMonitoringForRegion:desiredAccuracy:不建議使用),但我假設兩者都調用application:didFinishLaunchingWithOptions: startMonitoringForRegion:desiredAccuracy: 然后,我在Flurry文檔中閱讀了有關startSession:的注釋startSession:重點是我的):

此方法用作Flurry Analytics集合的入口點。 必須在applicationDidFinishLaunching范圍內調用它。 在應用程序處於前台狀態期間,會話將繼續進行,直到您的應用程序在setSessionContinueSeconds:中指定的時間成為背景為止。 如果在此期間恢復應用,會話將繼續,否則將開始新的會話。 注意: 如果要在模擬器上進行測試,請確保通過“主頁”按鈕將App發送到后台。 Flurry依賴於iOS生命周期來完成完整的報告。

因此,我的懷疑是,即使我在真實的設備上進行測試,該應用也永遠不會“發送到后台”,因為它在啟動時永遠不會進入前台。 誰能說明這是我的記錄事件從未出現的原因,還是可能還有其他原因? 而且,有沒有解決方法?

所以我聯系了Flurry支持部門,這是我的回信:

因此,目前尚無法在后台運行時記錄/記錄事件。

我們的工程團隊正在努力解決此問題,並且可能會在一個月后的將來版本的SDK中提供該解決方案。

所以我想我們會拭目以待。

暫無
暫無

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

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