iOSアプリからユーザーのwatchOSバージョンを検出する


13

時計に関連するiOSアプリにいくつかの設定があるiOSアプリがあります。ユーザーが私のアプリと互換性のあるApple Watchを持っている場合にのみ、それらを表示したいと思います。

WatchConnectivityで、WCSessionのisPairedプロパティをクエリしてユーザーがウォッチを持っているかどうかを確認できますが、watchOSのバージョンを判断する方法がわかりません(アプリを使用するには5.0よりも大きい必要があります)。

iOSアプリからwatchOSのバージョンを確認する方法はありますか?


iOSからwatchOSのバージョンを確認できるとは思いません。ただし、iOSアプリの時計アプリと通信して、必要な情報を取得できます。
Lei Zhang、

ありがとうございます。しかし、watchOS 4で時計を使用していて、watchアプリをインストールできないユーザーと、watchOSをインストールできて、インストールできないwatchOS 5でユーザーを区別することはできません
Stephen

興味のあるブルートゥース情報から取得しようと@Stephen リンク1 リンク2
ジョージ

興味深いアイデアです。残念ながら、この時計には標準のBluetoothメソッドでは利用できない特別な処理があるようです
Stephen

なぜwatchOS Deployment Targetを5.0に制限しないのですか?
Starsky

回答:


0

実際にisWatchAppInstalledは、このシナリオに対処する正しい方法です。

ドキュメントが述べるように:

ユーザーはApple Watchで利用可能なアプリのサブセットのみをインストールすることを選択できます。このプロパティの値は、現在のiOSアプリに関連付けられているWatchアプリがユーザーのApple Watchにインストールされている場合はtrue、インストールされていない場合はfalseです。

https://developer.apple.com/documentation/watchconnectivity/wcsession/1615623-iswatchappinstalled

プロパティは、Watchアプリが利用可能かどうかを確認するためにバンドル内を調べません。現在ペアリングされているApple WatchにWatchアプリがインストールされている場合にのみtrueを返します。ユーザーが時計から時計アプリを削除すると、falseが返されます。


時計アプリがインストールされていない場合にインストールできるかどうかを確認する方法を探しています。watchOSのバージョンが私の最小バージョンと互換性があるかどうかを区別する必要があります
Stephen

WatchKitには、ペアの時計に関する情報を含むWKInterfaceDeviceオブジェクトがあり、iOSとwatchOSの両方で使用できます。
jawadAli

let watchOSVersion = WKInterfaceDevice.currentDevice().systemVersion print("WatchOS version: \(watchOSVersion)")
jawadAli

試しましたか?
jawadAli

1
WKInterfaceDeviceは、iOSではなくwatchOSでのみ呼び出すことができます。ドキュメントを参照してください。
ラインハルトメンナー

-1

考えられる2つの解決策を次に示します。1番はOSをチェックします。私があなたの質問を理解していれば、あなたはすでに知っていますが、2番は、OSバージョンであるWatchOS 5.0以降をチェックします。これは私が行ったことですので、それがあなたに役立つことを願っています。

1。

#if os(watchOS)
    ...your code          
#endif
  1. if #available(watchOS 5.0, *) {
        ...your code
    }

これは、iOSアプリで実行しているときは機能しません。インストール済みのwatchOSアプリですでに機能している場合に限ります
Stephen

ああ、私はそれについて考えていませんでした。ごめんなさい。targetEnvironmentを確認してから、有効なOSバージョンを確認するとどうなりますか?targetEnvironmentにwatchOSターゲットがある場合。
117MasterChief96

わかりません。targetEnvironmentをどこでどのように確認していますか?
スティーブン、

私はこれを実際に使ったことはありませんが、のようなものを考えていました#if targetEnvironment(watchOS)。それがwatchOSでさえ可能であり、その内部でwatchOS 5のバージョンを確認できる場合
117MasterChief96

申し訳ありませんが、これは私が求めているものではありません。#if targetEnvironmentがwatchOSの場合、それはウォッチで実行されている必要があります。私はiOSからの小切手を探しています
Stephen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.