91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在iOS中配置實時遠程紀錄

發布時間:2021-01-16 10:36:18 來源:億速云 閱讀:163 作者:Leah 欄目:移動開發

怎么在iOS中配置實時遠程紀錄?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

怎么在iOS中配置實時遠程紀錄

在AppDelegate中觸發回調時,不會向用戶顯示靜默推送通知。通過將選項content_available設置為true,您甚至可以在推送通知到達時讓iOS在后臺啟動您的應用程序(或恢復它)。一個問題:如果用戶手動殺死它,iOS將無法在后臺啟動您的應用程序。這將持續到下次重新啟動(第一次解鎖后)。除此之外,你沒有其他問題了。

實現

這個過程歸結為:

  • 將應用程序訂閱到Firebase Cloud Messaging主題

  • 創建在遠程配置更改時觸發的云功能

  • 處理AppDelegate中的靜音推送通知

  • 在下次啟動時使遠程配置緩存無效

如何設置Firebase云消息傳遞超出了本文的范圍,但文檔是一個很好的起點。

1.訂閱到主題

推送通知啟動并運行后,我們需要將應用訂閱到主題。我們將專門用于遠程配置。

Messaging.messaging().subscribe(toTopic: "REMOTE_CONFIG") { error in
 if let error = error {
  debugPrint("Could not subscribe to Remote Config topic", error)
 }
}

2.創建一個云服務

Cloud Function只是一個Node.js腳本,因此您需要在您的計算機上使用Node.js.在撰寫本文時,Cloud Functions支持Node v6或Node v8,其中v6是默認值。

獲得Node.js后,首先安裝Firebase CLI。

npm install -g firebase-tools

然后使用CLI工具進行身份驗證。

firebase login

現在為函數創建一個文件夾,cd進入它并初始化Firebase項目。

firebase init functions

這將啟動CLI向導。完成它,你就準備好了。

怎么在iOS中配置實時遠程紀錄

是時候添加將向REMOTE_CONFIG通道發送靜默推送通知的云功能。在新創建的項目的函數目錄中,您將找到index.js。打開它并用以下內容替換內容:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.pushConfig = functions.remoteConfig.onUpdate(versionMetadata => {
 // Create FCM payload to send data message to REMOTE_CONFIG topic.
 const payload = {
  data: {
   CONFIG_STATE: 'STALE'
  }
 };

 const options = {
  content_available: true
 };

 // Use the Admin SDK to send the ping via FCM.
 return admin
  .messaging()
  .sendToTopic('REMOTE_CONFIG', payload, options)
  .then(response => {
   console.log(response);
  
   return null;
  });
});

我們使用通知來傳遞帶有密鑰CONFIG_STATE的有效負載。這將向您的應用發出遠程配置數據已更改的信號。如有必要,選項content_available是必要的,以使iOS恢復應用程序或在后臺啟動它。

現在該功能已經到位,我們可以將其部署到Firebase,以便它可以運行。

firebase deploy --only functions

這將部署到firebase init函數中選擇的Firebase項目。要部署到另一個項目,首先使用firebase使用--add添加它。添加后,您可以使用my-project-alias切換運行firebase的項目。

3.處理遠程推送

我們需要在AppDelegate中實現方法:didReceiveRemoteNotification:fetchCompletionHandler:來處理傳入的推送通知。如果userInfo字典有密鑰CONFIG_STATE(我們添加到通知有效負載的那個),那么它就是我們正在尋找的通知。

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (_: UIBackgroundFetchResult) -> Void) {
 if userInfo["CONFIG_STATE"] != nil {
  UserDefaults.standard.set(true, forKey: "CONFIG_STATE")
  UserDefaults.standard.synchronize()
 }

 completionHandler(UIBackgroundFetchResult.newData)
}

這里很容易調用fetchWithExpirationDuration:completionHandler:具有非常少的到期時間,以便在那時檢索更新的值。但這樣做會使所有通知的應用實例在大致相同的時間請求新值。這很可能會使應用受到限制,因此我們會將其推遲到下一次發布。

4. 使遠程配置緩存無效

我們只需要將標志保存到UserDefaults并在獲取Remote Config值之前進行檢查。

var expirationDuration: TimeInterval = 43200 // 12hs of cache by default

if UserDefaults.standard.bool(forKey: "CONFIG_STATE") {
 UserDefaults.standard.set(false, forKey: "CONFIG_STATE")
 UserDefaults.standard.synchronize()
   
 expirationDuration = 0
}

RemoteConfig.fetch(withExpirationDuration: expirationDuration) { [weak self] status, error in
 RemoteConfig.remoteConfig().activateFetched()
}

如果配置已過時,我們將通過將到期持續時間設置為0來繞過緩存。這將強制執行一次完全重新加載,而不必等待緩存過期。

這就是所有的設置。現在轉到“遠程配置”面板并發布更改。然后查看“功能”選項卡。它應該如下所示:

怎么在iOS中配置實時遠程紀錄

日志應該注冊成功執行:

怎么在iOS中配置實時遠程紀錄

學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

關于怎么在iOS中配置實時遠程紀錄問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ios
AI

塘沽区| 新闻| 绥棱县| 凯里市| 法库县| 台州市| 革吉县| 承德县| 宜昌市| 垦利县| 吴江市| 英超| 浦县| 连山| 嘉黎县| 云阳县| 黄浦区| 安平县| 腾冲县| 洪泽县| 炎陵县| 巴林左旗| 封开县| 玉门市| 玉环县| 宣恩县| 英德市| 贡嘎县| 琼中| 姚安县| 宁陕县| 南涧| 玛多县| 剑河县| 宜都市| 江都市| 原平市| 梁平县| 鄱阳县| 土默特左旗| 平邑县|