首页 文章

在Apple Watch上未调用session(_:activationDidCompleteWith:error :)(但在模拟器中调用)

提问于
浏览
0

我创建了一个简单的swift类:

import Foundation
import WatchConnectivity

class WatchCommunication : NSObject, WCSessionDelegate {

    var session: WCSession!

    override init() {
        super.init()

        if WCSession.isSupported() {
            print("WCSession is supported")
            self.session = WCSession.default
            self.session.delegate = self
            if session.activationState == WCSessionActivationState.activated {
                print("activationState is activated")
            } else {
                print("activationState is not activated")
                self.session.activate()
            }
        } else {
            print("WCSession is not supported")
        }
    }

    func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
        print("activationState", activationState.rawValue)
        print(error)
    }
}

在我的Watch App Extension中,我加载创建此类的实例

class ExtensionDelegate: NSObject, WKExtensionDelegate {

    let watchCommunication: WatchCommunication = WatchCommunication() 

    // ...

当我在模拟器中测试此代码时,我看到以下记录

WCSession is supported
 activationState is not activated
 activationState 2
 nil

一切正常 . 当我在测试iPhone X上运行相同的应用程序并配对Apple Watch 3时,日志显示

WCSession is supported
 activationState is not activated

所以看来这个方法

func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {

从来没有在我的Apple Watch上调用过 .

方法如

func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) {

也没有在设备上调用(但正在模拟器上工作) .

在iPhone X方面,调用 actionDidCompleteWith 方法, activationState 2( activated )和 updateApplicationContext 不会抛出错误 .

然而,iPhone和Apple Watch之间存在通信,因为方法https://developer.apple.com/documentation/healthkit/hkhealthstore/1648358-startwatchapp确实开始在 Watch 上进行锻炼(所有Apple和第三方 Watch 应用程序都能正常工作) .

1 回答

  • -1

    供进一步参考:

    重新启动我的Apple Watch(我还没做其他事情)确实解决了这个问题......

相关问题