2016-06-28 85 views
0

我已經在我的應用程序中集成了branch.io(https://branch.io/)用於深度鏈接。 這裏,我在分支處理程序中得到的響應稍微有些延遲。一旦我得到響應,我會做一些其他處理,然後決定是否導航到第一個屏幕或第二個屏幕。如何延遲啓動畫面的消失,並在iOS目標C中在後臺並行運行web服務?

問題是甚至在獲取分支響應之前,顯示第一個屏幕。我想延遲一段時間的閃屏(這不像大多數人說的那樣好,但我沒有任何選擇)。我提到了各種鏈接,How can I display a splash screen for longer on an iPhone?他們建議添加一個splash視圖。但是這不起作用。我不知道是什麼原因。我也用[NSThread sleepForTimeInterval:6.0]; 但是,這阻止了主線程。我也使用GCD,這沒有幫助。

在didFinishLaunchingWithOptions,這是我的編碼,

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, NULL), ^{ 

     dispatch_async(dispatch_get_main_queue(), ^{ 
      //get branch response 
     }); 

    }); 

但第一屏正從branch.io響應之前出現。請幫助....這是我的應用程序的主要問題,沒有它我不能測試任何東西..請幫助我...讓我知道如果我沒有讓自己清楚..

回答

2

爲什麼不創建屏幕之間的啓動畫面和主屏幕,這將加載所需的數據,當它完成後,它將被重定向到主屏幕。它會說等待數據加載並可能顯示一些進度指示器。我認爲這是最好的解決方案。

0

您可以在didFinishLaunchingWithOptions的主線程中運行webservice。啓動畫面將一直存在,直到服務完成。之後,你可以選擇屏幕將被推送到。

記住處理API失敗的情況。

+0

亞歷克斯從Branch.io在這裏:這應該工作。值得一提的是,API調用實際上是通過我們的SDK來處理的,它確保在任何情況下都會返回一個值(即使網絡出現故障,或者API回調失敗)。 –

+0

行,明白!等到獲取Web服務的完成塊後,調用'[self.window makeKeyAndVisible]' – Proton

相關問題