怎么在iOS中配置实时远程纪录

  介绍

怎么在iOS中配置实时远程纪录?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

怎么在iOS中配置实时远程纪录”> <br/> </p> <p>在AppDelegate中触发回调时,不会向用户显示静默推送通知。通过将选项content_available设置为真的,您甚至可以在推送通知到达时让iOS在后台启动您的应用程序(或恢复它)。一个问题:如果用户手动杀死它,iOS将无法在后台启动您的应用程序。这将持续到下次重新启动(第一次解锁后)。除此之外,你没有其他问题了。<br/> </p> <p> <强>实现</强> <br/> </p> <p>这个过程归结为:</p> <ul类= <李>

将应用程序订阅到重火力点云通讯主题

<李>

创建在远程配置更改时触发的云功能

<李>

处理AppDelegate中的静音推送通知

<李>

在下次启动时使远程配置缓存无效

如何设置重火力点云消息传递超出了本文的范围,但文档是一个很好的起点。

<强> 1。订阅到主题

推送通知启动并运行后,我们需要将应用订阅到主题。我们将专门用于远程配置。

Messaging.messaging () .subscribe (toTopic:“REMOTE_CONFIG"), {, error 在   ,if  let  error =, error  {   debugPrint才能(“Could  not  subscribe 用Remote  Config  topic",,错误)   ,}   }

2。创建一个云服务

云功能只是一个node . js脚本,因此您需要在您的计算机上使用node . js。在撰写本文时,云功能支持v6节点或节点v8,其中v6是默认值。

获得节点。js后,首先安装重火力点CLI。

npm  install  -g  firebase-tools

然后使用CLI工具进行身份验证。

firebase 登录

现在为函数创建一个文件夹,cd进入它并初始化重火力点项目。

firebase  init 功能

这将启动CLI向导。完成它,你就准备好了。

怎么在iOS中配置实时远程纪录

是时候添加将向REMOTE_CONFIG通道发送静默推送通知的云功能。在新创建的项目的函数目录中,您将找到索引。js。打开它并用以下内容替换内容:

const  functions =,要求(& # 39;firebase-functions& # 39;);   const  admin =,要求(& # 39;firebase-admin& # 39;);      admin.initializeApp (functions.config () .firebase);      时间=exports.pushConfig  functions.remoteConfig.onUpdate (versionMetadata =祝辞,{   ,//Create  FCM  payload 用send  data  message 用REMOTE_CONFIG 主题。   ,const  payload =, {   ,,数据:{   ,,,CONFIG_STATE: & # 39;陈旧# 39;   ,,}   ,};      ,const  options =, {   content_available才能:真实   ,};      ,//Use 从而Admin  SDK 用send 从而ping  via  FCM。   return 管理   .messaging才能()   .sendToTopic才能(& # 39;REMOTE_CONFIG& # 39;,,有效载荷,,选项)   ,然后才能(response =祝辞,{   ,,console.log(响应);   ,,   ,,return 零;   ,,});   });

我们使用通知来传递带有密钥CONFIG_STATE的有效负载。这将向您的应用发出远程配置数据已更改的信号。如有必要,选项content_available是必要的,以使iOS恢复应用程序或在后台启动它。

现在该功能已经到位,我们可以将其部署到重火力点,以便它可以运行。

firebase  deploy ——only 功能

这将部署到重火力点init函数中选择的重火力点项目。要部署到另一个项目,首先使用重火力点使用,加添加它。添加后,您可以使用my-project-alias切换运行重火力点的项目。

<强> 3。处理远程推送

我们需要在AppDelegate中实现方法:didReceiveRemoteNotification: fetchCompletionHandler:来处理传入的推送通知。如果用户信息字典有密钥CONFIG_STATE(我们添加到通知有效负载的那个),那么它就是我们正在寻找的通知。

func 应用程序(UIApplication _ 应用程序:,,,didReceiveRemoteNotification 用户信息:,AnyHashable:,,, fetchCompletionHandler  completionHandler:, @escaping  (_: UIBackgroundFetchResult),→,无效),{   ,if 用户信息(“CONFIG_STATE"), !=, nil  {   UserDefaults.standard.set才能(真的,,forKey:,“CONFIG_STATE")   UserDefaults.standard.synchronize才能()   ,}      ,completionHandler (UIBackgroundFetchResult.newData)   }

怎么在iOS中配置实时远程纪录