Mendeteksi versi watchOS pengguna dari aplikasi iOS

13

Saya memiliki aplikasi iOS di mana saya memiliki beberapa pengaturan di aplikasi iOS yang terkait dengan arloji. Saya hanya ingin menunjukkan kepada mereka jika pengguna memiliki Apple Watch yang kompatibel dengan aplikasi saya.

Di WatchConnectivity saya dapat meminta properti isPaired WCSession untuk melihat apakah pengguna memiliki arloji tetapi saya tidak tahu cara menentukan versi watchOS (perlu> 5.0 untuk menggunakan aplikasi saya).

Apakah ada cara untuk menentukan versi watchOS dari aplikasi iOS?

Stephen
sumber
Saya tidak berpikir Anda dapat memeriksa versi watchOS dari iOS. Namun, Anda dapat berkomunikasi antara aplikasi tontonan dari aplikasi iOS untuk mendapatkan informasi yang Anda butuhkan.
Lei Zhang
Terima kasih, tetapi saya masih belum dapat membedakan antara pengguna yang memiliki arloji di watchOS 4 dan tidak dapat menginstal aplikasi arloji vs pengguna di watchOS 5 yang dapat menginstal aplikasi arloji tetapi belum
Stephen
@Stephen coba dapatkan dari info bluetooth yang Anda minati Link1 Link2
George
ide yang menarik, sayangnya arloji ini tampaknya memiliki penanganan khusus di mana itu tidak tersedia melalui metode bluetooth standar
Stephen
Mengapa Anda tidak membatasi watchOS Deployment Targetmenjadi 5.0?
Starsky

Jawaban:

0

Sebenarnya isWatchAppInstalledadalah cara yang tepat untuk menghadapi skenario ini.

Seperti yang dinyatakan dalam dokumentasi:

Pengguna dapat memilih untuk menginstal hanya sebagian dari aplikasi yang tersedia di Apple Watch. Nilai properti ini benar ketika aplikasi Tonton yang terkait dengan aplikasi iOS saat ini diinstal pada Apple Watch pengguna atau palsu ketika tidak diinstal.

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

Properti tidak melihat ke dalam bungkusan untuk melihat apakah aplikasi Tonton tersedia. Ini hanya akan mengembalikan true jika aplikasi Watch diinstal pada Apple Watch yang saat ini dipasangkan. Jika pengguna menghapus Aplikasi Arloji dari arloji itu akan kembali palsu.

jawadAli
sumber
Saya mencari cara untuk mengetahui apakah mereka dapat menginstal aplikasi arloji jika tidak diinstal. Saya perlu membedakan apakah versi watchOS kompatibel dengan minimum saya
Stephen
Di WatchKit, ada objek WKInterfaceDevice, tersedia di sisi iOS dan watchOS, yang berisi informasi tentang jam tangan yang dipasangkan.
jawadAli
let watchOSVersion = WKInterfaceDevice.currentDevice().systemVersion print("WatchOS version: \(watchOSVersion)")
jawadAli
Sudahkah Anda mencobanya?
jawadAli
1
WKInterfaceDevice hanya dapat dipanggil di watchOS, bukan di iOS, lihat dokumen .
Reinhard Männer
-1

Berikut adalah dua solusi yang mungkin. Nomor 1 memeriksa OS yang jika saya mengerti pertanyaan Anda, Anda sudah tahu, tetapi 2 memeriksa versi OS yaitu WatchOS 5.0 dan yang lebih baru. Ini yang saya lakukan jadi saya harap ini membantu Anda.

1.

#if os(watchOS)
    ...your code          
#endif
  1. if #available(watchOS 5.0, *) {
        ...your code
    }
117MasterChief96
sumber
Ini tidak berfungsi ketika berjalan di aplikasi iOS, hanya ketika sudah ada di aplikasi watchOS yang terpasang
Stephen
Ahh, aku tidak memikirkan itu. Maaf. Bagaimana jika Anda memeriksa targetEnvironment, dan kemudian memeriksa versi OS yang tersedia? Jika targetEnvironment memiliki target watchOS.
117MasterChief96
Tidak yakin saya ikuti. Di mana / bagaimana Anda memeriksa targetEnvironment?
Stephen
Saya belum pernah menggunakan ini sebelumnya, tetapi saya berpikir seperti itu #if targetEnvironment(watchOS). Jika itu bahkan mungkin dengan watchOS, dan kemudian di dalamnya Anda dapat memeriksa versi untuk watchOS 5.
117MasterChief96
Maaf ini bukan yang sebenarnya saya minta. #Jika targetEnvironment adalah watchOS, itu harus dijalankan pada jam tangan. Saya mencari cek dari iOS
Stephen