即使我使用了 AppGroup,我的 Iwatch 也没有从 ios 应用程序中保存数据
My Iwatch does not get data saved from ios App even though I used AppGroup
我已阅读并遵循了一些说明和视频,试图让我的 iphone 和 iwatch 应用程序使用相同的 Userdefaults 存储。
我创建了一个应用组并使用了这样的应用组名称
preferences = UserDefaults(suiteName: "group.com.xxxx.appname")!
但它仍然没有按预期工作
我已经在 Whosebug 上阅读了几乎所有(如果不是全部)与此相关的问题,但我仍然没有得到预期的结果。
我读到的最后一个 post 建议使用 WCSession,所以我遵循了这个 url
http://www.codingexplorer.com/watch-connectivity-swift-application-context/
经过所有这些尝试,我的 Iwatch 仍然无法使用我在 ios 应用程序上设置的 preferences/data。
如能解决此问题,我们将不胜感激。
尝试访问两台设备上的数据时,应用组不再是一个选项。
您现在需要使用 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])
}
}
以上代码未经测试,但应该足以让您入门。
我已阅读并遵循了一些说明和视频,试图让我的 iphone 和 iwatch 应用程序使用相同的 Userdefaults 存储。 我创建了一个应用组并使用了这样的应用组名称
preferences = UserDefaults(suiteName: "group.com.xxxx.appname")!
但它仍然没有按预期工作
我已经在 Whosebug 上阅读了几乎所有(如果不是全部)与此相关的问题,但我仍然没有得到预期的结果。
我读到的最后一个 post 建议使用 WCSession,所以我遵循了这个 url http://www.codingexplorer.com/watch-connectivity-swift-application-context/
经过所有这些尝试,我的 Iwatch 仍然无法使用我在 ios 应用程序上设置的 preferences/data。
如能解决此问题,我们将不胜感激。
尝试访问两台设备上的数据时,应用组不再是一个选项。
您现在需要使用 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])
}
}
以上代码未经测试,但应该足以让您入门。