Kullanıcının watchOS sürümünü iOS uygulamasından algılama


13

İOS uygulamasında saatle ilgili bazı ayarların bulunduğu bir iOS uygulamam var. Yalnızca kullanıcının uygulamamla uyumlu bir Apple Watch'u varsa göstermek istiyorum.

WatchConnectivity kullanıcı WCSession'ın isPaired özelliği kullanıcı bir saat olup olmadığını görmek için sorgulayabilirsiniz ama watchOS sürümünü belirlemek için nasıl anlayamıyorum (benim app kullanmak için> 5.0 olması gerekir).

İOS uygulamasından watchOS sürümünü belirlemenin bir yolu var mı?


İOS'tan watchOS sürümünü kontrol edebileceğinizi sanmıyorum. Ancak, ihtiyacınız olan bilgileri almak için iOS uygulamasından izleme uygulaması arasında iletişim kurabilirsiniz.
Lei Zhang

Teşekkürler, ancak hala watchOS 4'te bir saati olan ve saat uygulamasını yükleyebilen, ancak watchOS 5'teki bir kullanıcıya karşı saat uygulamasını yükleyemeyen bir kullanıcı arasındaki farkı söyleyemiyorum
Stephen

@Stephen ilginizi çeken bluetooth bilgi almak için deneyin Link1 Link2
George

ilginç bir fikir, ne yazık ki saatin standart bluetooth yöntemleri ile mevcut olmadığı özel bir işleme sahip gibi görünüyor
Stephen

Neden watchOS'u Deployment Target5.0 ile kısıtlamıyorsunuz ?
Starsky

Yanıtlar:


0

Aslında isWatchAppInstalledbu senaryo ile başa çıkmanın doğru yolu.

Belgelerin belirttiği gibi:

Kullanıcı, Apple Watch'a yalnızca kullanılabilir uygulamaların bir alt kümesini yüklemeyi seçebilir. Bu özelliğin değeri, geçerli iOS uygulamasıyla ilişkili Watch uygulaması kullanıcının Apple Watch'una yüklendiğinde doğrudur veya yüklü olmadığında false olur.

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

Tesis, bir Watch uygulamasının olup olmadığını görmek için paketin içine bakmaz. Yalnızca Watch uygulaması şu anda eşlenmiş Apple Watch'a yüklüyse true değerini döndürür. Kullanıcı Watch Uygulamasını saatten silerse false değerini döndürür.


Yüklü değilse izleme uygulamasını yükleyip yükleyemeyeceklerini anlamanın bir yolunu arıyorum. WatchOS sürümünün minimum değerimle uyumlu olup olmadığını ayırt etmeliyim
Stephen

WatchKit'te, eşleştirilmiş saat hakkında bilgi içeren hem iOS hem de watchOS tarafında bulunan WKInterfaceDevice nesnesi var.
jawadAli

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

denedin mi
jawadAli

1
WKInterfaceDevice yalnızca iOS'ta değil watchOS'ta çağrılabilir , dokümanlara bakın .
Reinhard Männer

-1

İşte iki olası çözüm. 1 numaralı işletim sistemi, sorunuzu anlarsam zaten bildiğinizi kontrol eder, ancak 2, WatchOS 5.0 ve üstü işletim sistemi sürümünü kontrol eder. Yaptığım şey bu, umarım sana yardımcı olur.

1.

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

Bu, bir iOS uygulamasında çalışırken, yalnızca zaten yüklü bir watchOS uygulamasında çalışmaz
Stephen

Ahh, bunu düşünmedim. Afedersiniz. TargetEnvironment öğesini işaretledikten sonra kullanılabilir işletim sistemi sürümünü kontrol ettiyseniz ne olur? TargetEnvironment öğesinin watchOS hedefi varsa.
117MasterChief96

Takip ettiğimden emin değilim. TargetEnvironment'ı nerede / nasıl kontrol ediyorsunuz?
Stephen

Bunu daha önce hiç kullanmadım ama böyle bir şey düşünüyordum #if targetEnvironment(watchOS). Bu bile watchOS ile mümkün ve daha sonra watchOS 5 sürümünü kontrol edebilirsiniz.
117MasterChief96

Üzgünüm bu gerçekten istediğim şey değil. #f targetEnvironment watchOS ise, saatte çalışıyor olması gerekir.
Stephen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.