在不提示手表的情况下检查用户是不是连接了 AppleWatch

Posted

技术标签:

【中文标题】在不提示手表的情况下检查用户是不是连接了 AppleWatch【英文标题】:Check if user has AppleWatch connected without prompting the watch在不提示手表的情况下检查用户是否连接了 AppleWatch 【发布时间】:2016-02-13 20:04:48 【问题描述】:

我们正在使用 Google Analytics,并想知道有多少用户拥有 AppleWatch。我已经在 Stack 中搜索了答案,而经常出现的答案是使用这个:

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
        
    

这样做的问题在于它会提示用户'接受'AppleWatch 上的应用程序。诚然,无论用户是否接受,if 语句都是正确的,但我不希望用户抱有希望,认为该应用程序支持 AppleWatch。我只是想知道用户是否有 AppleWatch,我不想使用它。然而。 ios 设备上是否有可以访问的属性来显示用户是否已连接或曾经连接过 AppleWatch,而无需通过 Watch 提示用户?

【问题讨论】:

好问题。但我对此表示怀疑——它与大多数 iOS 安全模型背道而驰,以允许这种全球访问。 【参考方案1】:

或许您可以使用(推送)通知,因为无需开发原生 applewatch 应用即可在手表上接收通知。例如,我在手表上收到“whats app 消息”,但手表上也没有任何本机应用程序。

在您的 watchkit 扩展 ExtensionDelegate.m 中,您可以单独处理提供的推送消息答案。 Link to Apple

这将是一种(另一种)方法,您必须发挥创造力!

【讨论】:

但这对我有什么帮助?我可以跟踪通知将发送到哪里,但实际上没有发送吗?要么我没听懂你的回答,要么你没听懂我的问题。我想知道 iPhone 是否与 AppleWatch 连接在手表上没有显示任何内容 可能两者兼而有之,我在上面编辑了我的答案,使其更加具体。我假设您正在使用带有 Google Analytics 的 iOS 应用,并且您的应用也支持远程通知。 遗憾的是,此应用没有通知。无论如何,这也将假定用户接受来自应用程序的通知,而我的问题是检查 AppleWatch,而不管通知设置如何。但这是个好主意(如果可行的话)!

以上是关于在不提示手表的情况下检查用户是不是连接了 AppleWatch的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中检查 File.Delete() 是不是会在不尝试的情况下成功?

如何在不检查应用程序状态的情况下确定是不是点击了 UILocalNotification?

如何在不创建组件的情况下从 laravel 刀片视图文件扩展 app.js 方法/数据/手表

如何在不使用 SafeArea 的情况下检查设备是不是有缺口?

如何在不下载的情况下使用其 URL 检查文件是不是存在?

在不连接计算机的情况下在 Android 上检查元素