2017-05-13 129 views
1

我正在開發一個帶有阻止號碼數據庫的應用程序。 在我的beginRequest方法中,我正在與我的在線數據庫進行異步連接,並在完成塊中調用context.completeRequest()。這種方法何時被調用?蘋果文檔對我來說不是很清楚 - 可以多次調用嗎?主要原因是保持設備中的阻塞號碼列表與我的數據庫保持一致。CallKit擴展開始請求

所以問題:

  1. 是在CallKit目錄處理提供異步請求?

  2. beginRequest方法不止一次調用?

  3. 如何在我的應用程序外部創建類似彈出窗口的擴展程序,以便在不輸入我的應用程序的情況下使報告垃圾郵件成爲可能?像第三屏截圖上的here一樣。

回答

2

Apple Documentation

因爲只有當系統啓動應用程序的擴展,而不是對每個單獨的呼叫,您必須指定一下子呼叫標識信息調用該方法;例如,您不能向Web服務請求查找有關來電的信息。

您可以使用beginRequest中的異步方法來檢索您的數據。一旦異步獲取完成,您可以在最終調用completeRequest之前調用addBlockingEntry與每個數字。

我懷疑你在鏈接的應用程序中引用的屏幕是從聯繫人的「共享聯繫人」按鈕調用的共享擴展。

當您更新阻止數據時,您可以通過從主應用程序調用CXCallDirectory.sharedInstance.reloadExtension來刷新阻止數據;當用戶請求或使用後臺提取時,您可以響應無聲推送來執行此操作。