在 Apple Watch 和 iPhone 之间启动文件传输应用程序

问题描述 投票:0回答:0

我正在尝试使用 Xcode 开发我的第一个 Apple Watch 到 iPhone 文件传输应用程序。

使用 iPhone SE 2nd 和 Apple Watch series 8 41mm 实际设备,我可以在两种设备上运行该应用程序。

在这种情况下,如果iPhone端应用先启动,那么iPhone端应用会在Apple Watch端应用启动时终止。这可以避免吗?

iPhone端
    override init() {
        super.init()

//        if WCSession.default.isReachable {
        if WCSession.isSupported() {
            WCSession.default.delegate = self
            WCSession.default.activate()
        }
    }

    func session(_ session: WCSession, didReceiveMessageData messageData: Data) {
        let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
        let audioFileURL = documentsURL.appendingPathComponent(audioFilename)

        do {
            try messageData.write(to: audioFileURL, options: .atomicWrite)
        } catch {
            print("Error writing and playing audio: \(error.localizedDescription)")
        }
    }
Apple Watch 端
            let audioData = try Data(contentsOf: audioFileURL)

//            if WCSession.default.isReachable {
            if WCSession.isSupported() {
                WCSession.default.sendMessageData(audioData, replyHandler: { response in
                    print("Audio sent successfully: \(response)")
                }, errorHandler: { error in
                    print("Error sending audio: \(error.localizedDescription)")
                })
            }

目前正在输出以下错误日志,我想更改启动顺序。

iPhone端日志
[WC] WCSession counterpart app not installed
Apple Watch端日志
[WC] WCSession has not been activated
ios swift iphone swiftui apple-watch
© www.soinside.com 2019 - 2024. All rights reserved.