2017-01-19 66 views
0

我打算創建一個iOS VoIP應用程序(之前未做任何iOS應用程序)。我正在閱讀IOS中的Callkit,通過它可以讓他的應用程序通過iPhone原生通話屏幕接聽電話。iOS - 我可以使用Callkit在接聽電話時打開我的VoIP應用程序嗎?

我讀Callkit apihere其中提到可以知道是否應答呼叫。

經歷this教程,這裏是檢測代碼中的呼叫應答:

-(void)reportIncomingCallWithHandle:(NSString *)handle 
          success:(void (^)())success 
          failure:(void (^)(NSError * error))failure { 
    CXCallUpdate *update = [self newCallUpdateWithHandle:handle]; 
    self.callId = [NSUUID UUID]; 

    [self.provider reportNewIncomingCallWithUUID:self.callId update:update completion:^(NSError * _Nullable error) { 
     if (error) { 
      if (failure) failure(error); 
     } else { 
      if (success) { 
       success(); 
      } 
     } 
    }]; 
} 

,看到成功的塊。那麼當這個成功塊被執行時,是否有辦法打開我的應用程序?或者我可以覆蓋呼叫者屏幕上的默認按鈕來打開我的應用程序?

我知道在接收任何類型的通知或事件觸發器時無法打開應用程序。所以想想可能有一些方法,如果我可以做同樣的使用Callkit

我GOOGLE了一切,但沒有發現有關我上述查詢的線索。如果可能或不可以,請幫助我。

回答

1

您無法從CallKit打開您自己的VoIP應用程序或您的應用程序的自定義UI。使用可以像Whatsapp那樣使用它。

意味着您可以在不使用本地通知的情況下從後臺喚醒您的應用。操作系統將顯示默認的傳入屏幕。在通話期間不需要處理任何事情。 CallKit專門用於通過在後臺接聽電話,通過撥打電話,管理呼叫目錄和阻止用戶來增強VoIP應用程序。

+0

請參閱** Stuart **的評論http://stackoverflow.com/a/39678893/4512651。他說如果屏幕未鎖定,應用程序將被打開。 – Choxx

+0

只有在您的應用中實施了CallKit後,纔會打開該應用。 –

+0

@KrishnaDattShukla我還有一個問題,在我的情況下,如果屏幕被鎖定,音頻不通過,它開始工作,如果我打開應用程序,而呼叫。你有什麼想法嗎? – Sonu

4

我遇到了同樣的問題。該行爲因設備是否被鎖定而異。

  1. 鎖定:出現系統調用屏幕。您可以在後臺運行應用程序,包括視圖轉換。但是,用戶只能看到系統調用屏幕,儘管您的應用程序在視圖下方顯示。由於設備被鎖定,深層鏈接無法正常工作。
  2. 解鎖:呼叫屏幕是一樣的,但一旦用戶接聽電話,應用程序將被呈現。

如您所知,我們可以更改打開應用程序的調用屏幕上的按鈕圖標,這是我們現在可以做的最好的。

+0

我們如何更改打開應用程序的調用屏幕上的按鈕圖標? –

+0

@VarinderSingh在CXProviderConfiguration中有這個圖標的屬性。詳細信息請查看文檔https://developer.apple。com/documentation/callkit/cxproviderconfiguration/2274376-icontemplateimagedata – Leetmorry

+0

@Leetmorry。謝謝,解決。 –

相關問題