gpt4 book ai didi

ios - 即使我使用了 AppGroup,我的 Iwatch 也无法获取从 ios 应用程序保存的数据

转载 作者:行者123 更新时间:2023-11-30 11:34:06 26 4
gpt4 key购买 nike

我已阅读并遵循了一些说明和视频,试图让我的 iPhone 和 iwatch 应用程序使用相同的用户默认存储。我创建了一个应用程序组并使用了这样的应用程序组名称

preferences = UserDefaults(suiteName: "group.com.xxxx.appname")!

但它仍然没有按预期工作

我已经阅读了 stackoverflow 上几乎所有(如果不是全部)与此相关的问题,但我仍然没有得到预期的结果。

我读到的最后一篇文章建议使用 WCSession,所以我遵循了这个 url http://www.codingexplorer.com/watch-connectivity-swift-application-context/

经过所有这些尝试后,我的 Iwatch 仍然无法使用我在 iOS 应用程序上设置的首选项/数据。

任何有关解决此问题的回复将不胜感激。

最佳答案

尝试访问两个设备上的数据时,应用程序组不再是一个选项。

您现在需要使用WatchConnectivity框架。

以下是如何使用它的示例:

IOS

import WatchConnectivity

class ViewController: UIViewController, WCSessionDelegate{

override func awake(withContext context: Any?) {
super.viewDidLoad()
if WCSession.isSupported(){
WCSession.default.activate()
WCSession.default.delegate = self
}
}

}

watchOS

import WatchConnectivity

class InterfaceController: WKInterfaceController, WCSessionDelegate{

override viewDidLoad(){
super.viewDidLoad()
if WCSession.isSupported(){
WCSession.default.activate()
WCSession.default.delegate = self
let data = ["data1": 1, "data2": 2]
WCSession.default.sendMessage(data, replyHandler: {reply in
print("Got reply \(reply)")
}, errorHandler: {error in
print("Got error \(error)")
})
}
}
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
print("Received \(message)") // ["data1": 1, "data2": 2]
replyHandler(["messagedReceived": true])
}
}

上面的代码尚未经过测试,但应该足以让您入门。

关于ios - 即使我使用了 AppGroup,我的 Iwatch 也无法获取从 ios 应用程序保存的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49950342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com