Ios 如何检查iPhone和apple watch是否连接

Ios 如何检查iPhone和apple watch是否连接,ios,watchkit,apple-watch,Ios,Watchkit,Apple Watch,有没有办法通知Apple Watch中的用户iPhone现在超出范围,何时又回到范围内。在手表分机里我们怎么做 提前感谢。从目前的知识来看,这可能是不可能的 来自苹果的 选择场景后,WatchKit会告诉配对的iPhone启动 您的WatchKit扩展并创建管理该扩展所需的对象 场景完全配置场景后,它将显示在Apple上 看。WatchKit应用程序和应用程序之间的信息传输 WatchKit扩展在幕后透明地进行 也就是说,代码是在iPhone上执行的。如果iPhone触手可及,就不可能在手表上运

有没有办法通知Apple Watch中的用户iPhone现在超出范围,何时又回到范围内。在手表分机里我们怎么做


提前感谢。

从目前的知识来看,这可能是不可能的

来自苹果的

选择场景后,WatchKit会告诉配对的iPhone启动 您的WatchKit扩展并创建管理该扩展所需的对象 场景完全配置场景后,它将显示在Apple上 看。WatchKit应用程序和应用程序之间的信息传输 WatchKit扩展在幕后透明地进行


也就是说,代码是在iPhone上执行的。如果iPhone触手可及,就不可能在手表上运行应用程序。

从正式的角度来看,苹果没有给出如何处理的任何指示

然而,考虑到操作系统在不涉及应用程序的情况下处理配对和通信区域,几乎可以肯定的是,任何关于手表(以及手机端)连接问题的通知都将由手表操作系统处理。我的猜测是,用户将有机会解决连接丢失的问题,或者在无法解决的情况下退出Watch应用程序。从开发人员的角度来看,我们的应用程序很可能无法区分未解决的连接丢失和用户正常退出应用程序,并向Watch Extension发送相同的通知,但这只是猜测


需要注意的是,当前watch应用程序的watch上没有运行第三方开发人员代码,只有一个UI,因此即使未解决的连接丢失也不会导致任何数据丢失。如果由于与手表的连接中断,操作系统退出了手表扩展(在iPhone上运行),那么它仍然能够进行正常的数据存储和清理。

所以在WatchOS 2上这是可能的

您必须在iPhone端执行以下操作:

第一:

import WatchConnectivity
然后:

   if WCSession.isSupported() { // check if the device support to handle an Apple Watch
        let session = WCSession.defaultSession()
        session.delegate = self
        session.activateSession() // activate the session

        if session.paired { // Check if the iPhone is paired with the Apple Watch
                // Do stuff
        }
    }

我希望它能帮助您:)

您可以在中找到所有连接状态更改通知。

使用watchOS 2.0您可以。要做到这一点,如果您希望Apple Watch收到通知,您可以将以下内容添加到ExtensionLegate中:

func watchKitSetup() {    
    if (WCSession.isSupported()) {
        let session = WCSession.defaultSession()
        session.delegate = self
        session.activateSession()

        // In your WatchKit extension, the value of this property is true when the paired iPhone is reachable via Bluetooth.
        // On iOS, the value is true when the paired Apple Watch is reachable via Bluetooth and the associated Watch app is running in the foreground.
        // In all other cases, the value is false.
        if session.reachable {

        }
    }
}

func applicationDidFinishLaunching () {
    self.watchKitSetup()
}

// Called when session.reachable value changes, such as when a user wearing an Apple Watch gets out of range of their iPhone.
func sessionReachabilityDidChange(session: WCSession) {
    if session.reachable {

    }
}

您还应该将WCSessionDelegate添加到您的ExtensionDelegate。

实际上,当手机无法触及时,我们需要显示警报视图。我想应该有办法。@Mohittolani不,如果iPhone超出范围,watch应用程序将退出,因为没有手机它无法运行!到目前为止,还没有任何通知或代表会让您知道手机是够不着的。只是想一想:也许你可以使用,看看你是否能够ping iPhone。只是一种预感,我还没有尝试过。当与iPhone的连接突然断开时,手表上是否会发出任何通知?当然可以!然后你会在手表上看到一个红色的取消手机:我如何在我的watchkit扩展或watchkit本机应用程序中观察到该通知?Paired不正确,这意味着你已经用手机设置了手表。您需要可访问属性。但如果watch应用程序不在前台,则paired返回
false
。如果你只是想知道手表是否连接了怎么办?例如,确定是否将通知发送到手机或手表?