如何与iOS扩展共享解析登录会话



为应用编写 iOS 扩展时,是否可以与 iOS 扩展共享应用的当前 Parse 登录会话?

iOS

扩展与 iOS 应用捆绑在一起,但在单独的容器中运行。因此,当用户登录应用时,扩展无法访问该 Parse 实例。如果扩展程序再次登录,它将为用户创建额外的登录会话。

但是,扩展可以与应用共享通用数据容器。所以我想知道是否可以将PFSession.sessionToken存储在共享容器中,并让扩展基于现有会话与 Parse Server 通信而无需登录?

有两种可能的解决方案:

A( 优雅的方法

启用本地数据共享,以便在主 iOS 应用及其扩展之间共享持久数据。

// Enable data sharing in main app.
Parse.enableDataSharingWithApplicationGroupIdentifier("...")
// Enable data sharing in app extensions.
Parse.enableDataSharingWithApplicationGroupIdentifier("...", containingApplicaiton: "...")

解析 SDK 中的本地数据共享允许您共享持久本地 主应用程序与其包含的扩展程序之间的数据, 包括键盘、共享/今天/照片/操作扩展和文档 供应商。

如文档中所述。

B( 手动方法

登录应用程序后,将 Parse 会话令牌PFUser.current().sessionToken存储在加密的共享数据容器中。

然后,扩展可以访问会话令牌并使用 PFUser.become(sessionToken:) 继续会话。

最新更新