我在iOS和watchOS之间同步用户凭据时遇到问题.
我的基本设置是我的iOS应用程序和watchOS应用程序都需要与后端服务器通信,并且它们都需要访问令牌来执行此操作.但是,用户只能登录iOS应用程序(因为需要输入用户和密码).
现在,当用户登录iOS(或之后打开应用程序)时,我使用updateApplicationContext()将用户的凭据发送到watchOS.用户注销时也会执行类似的操作,如下所示:
func logInOnWatch() {
if WCSession.isSupported() {
session.activate()
var userInfo = [String : Any]()
userInfo["type"] = "logInConfirm"
userInfo[userKey.isLoggedIn] = true
let deviceUserID = KeychainAccess.password(for: userKey.ID, service: userKey.keyChain)
userInfo[userKey.ID] = deviceUserID
let accessTokenSecret = KeychainAccess.password(for: userKey.accessTokenSecret, service: userKey.keyChain)
userInfo[userKey.accessTokenSecret] = accessTokenSecret
do {
try session.updateApplicationContext(userInfo)
}
catch {
print(error)
}
}
}
func logOutOnWatch() {
if WCSession.isSupported() {
session.activate()
var dict = [String : Any]()
dict["type"] = "logInConfirm"
dict["logInStatus"] = "User Has Not Logged In"
do {
try session.updateApplicationContext(dict) …Run Code Online (Sandbox Code Playgroud)