代码之家  ›  专栏  ›  技术社区  ›  Myk

如何访问watch应用程序上的PFUser.Current()

  •  0
  • Myk  · 技术社区  · 8 年前

    我正在使用Parse,我希望能够访问我手表上的当前用户。有一个关于在主机应用程序和扩展程序之间共享数据的指南,但是 enableDataSharing(withApplicationGroupIdentifier:, containingApplication:)

    1 回复  |  直到 8 年前
        1
  •  0
  •   Myk    8 年前

    因此,经过大量的挖掘和寻找多种选择后,我发现手表应用程序与iOS应用程序完全分离,不能再共享钥匙链访问。这可能就是内置解析解决方案不再工作的原因。幸运的是,Watch连接非常安全,所以我认为从iOS发送会话令牌并使用PFUser.been登录是安全的。

    guard WCSession.default.isReachable else { 
       print("Phone is not reachable")
       return
    }
    
    WCSession.default.sendMessage(["Request": "SessionToken"],
                                            replyHandler: (user, error) in {
        guard let token = response["Response"] as? String else { return }
    
        // there is a version of PFUser.become() with a success callback as well
        PFUser.become(inBackground: token) 
    }
    

    public func session(_ session: WCSession,
                        didReceiveMessage message: [String: Any],
                        replyHandler: @escaping ([String: Any]) -> Void) {
        // Respond to 'Request' message with sessionToken
        if let _ = message["Request"], let sessionToken = PFUser.current()?.sessionToken {
            replyHandler(["Response":  sessionToken])
        } else {
            // Either user is not logged in, or this was not a 'Request' message
        }
    }
    
    推荐文章