ตรวจสอบเวอร์ชั่น watchOS ของผู้ใช้จากแอพ iOS


13

ฉันมีแอพ iOS ที่ฉันมีการตั้งค่าบางอย่างในแอพ iOS ที่เกี่ยวข้องกับนาฬิกา ฉันต้องการแสดงเฉพาะเมื่อผู้ใช้มี Apple Watch ที่เข้ากันได้กับแอพของฉัน

ใน WatchConnectivity ฉันสามารถค้นหาคุณสมบัติ isPaired ของ WCSession เพื่อดูว่าผู้ใช้มีนาฬิกา แต่ฉันไม่สามารถหาวิธีกำหนดรุ่น watchOS (ต้องใช้> 5.0 เพื่อใช้แอปของฉัน)

มีวิธีการตรวจสอบเวอร์ชั่นของ watchOS จากแอพ iOS หรือไม่?


ฉันไม่คิดว่าคุณสามารถตรวจสอบเวอร์ชั่น watchOS จาก iOS ได้ อย่างไรก็ตามคุณสามารถสื่อสารระหว่างแอพนาฬิกาจากแอพ iOS เพื่อรับข้อมูลที่คุณต้องการ
Lei จาง

ขอบคุณ แต่ฉันยังคงไม่สามารถบอกความแตกต่างระหว่างผู้ใช้ที่มีนาฬิกาบน watchOS 4 และไม่สามารถติดตั้งแอปนาฬิกากับผู้ใช้บน watchOS 5 ที่สามารถติดตั้งแอปนาฬิกา แต่ไม่ได้
Stephen


แนวคิดที่น่าสนใจน่าเสียดายที่นาฬิกาดูเหมือนว่าจะมีการจัดการพิเศษที่ไม่สามารถใช้งานได้ผ่านวิธีการบลูทู ธ มาตรฐาน
Stephen

ทำไมคุณไม่ จำกัด watchOS Deployment Targetให้เป็น 5.0
Starsky

คำตอบ:


0

ที่จริงแล้วisWatchAppInstalledเป็นวิธีที่ถูกต้องในการจัดการกับสถานการณ์นี้

ตามที่ระบุในเอกสาร:

ผู้ใช้สามารถเลือกที่จะติดตั้งเฉพาะแอปย่อยที่มีอยู่ใน Apple Watch ค่าของคุณสมบัตินี้เป็นจริงเมื่อติดตั้งแอพ Watch ที่เชื่อมโยงกับแอพ iOS ปัจจุบันบน Apple Watch ของผู้ใช้หรือเป็นเท็จเมื่อไม่ได้ติดตั้ง

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

คุณสมบัติไม่ได้ดูอยู่ในชุดรวมเพื่อดูว่ามีแอป Watch หรือไม่ มันจะกลับมาจริงถ้าติดตั้งแอพ Watch ใน Apple Watch ที่จับคู่ในปัจจุบัน หากผู้ใช้ลบแอพ Watch จากนาฬิกามันจะคืนค่าเท็จ


ฉันกำลังมองหาวิธีที่จะบอกได้ว่าพวกเขามีความสามารถในการติดตั้งแอพนาฬิกาถ้ามันไม่ได้ติดตั้ง ฉันต้องแยกแยะว่ารุ่น watchOS เข้ากันได้กับขั้นต่ำของฉันหรือไม่
Stephen

ใน WatchKit มีวัตถุ WKInterfaceDevice พร้อมใช้งานทั้งใน iOS และ watchOS ซึ่งมีข้อมูลเกี่ยวกับนาฬิกาที่จับคู่
jawadAli

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

คุณเคยลองไหม
jawadAli

1
WKInterfaceDevice เท่านั้นที่สามารถเรียก watchOS ไม่ได้อยู่ใน iOS ของคุณ, ดูเอกสาร
Reinhard Männer

-1

นี่เป็นวิธีแก้ปัญหาสองวิธี หมายเลข 1 ตรวจสอบระบบปฏิบัติการซึ่งถ้าฉันเข้าใจคำถามของคุณคุณก็รู้อยู่แล้ว แต่ 2 ตรวจสอบเวอร์ชันระบบปฏิบัติการที่เป็น WatchOS 5.0 และใหม่กว่า นี่คือสิ่งที่ฉันทำดังนั้นฉันหวังว่ามันจะช่วยคุณ

1

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

สิ่งนี้ไม่ทำงานเมื่อทำงานในแอพ iOS เฉพาะเมื่อติดตั้งแอพ
Stephen

อ่าฉันไม่ได้คิดเรื่องนั้น ขอโทษ ถ้าคุณตรวจสอบ targetEnvironment แล้วตรวจสอบเวอร์ชั่นของระบบปฏิบัติการที่ใช้ได้ หาก targetEnvironment มีเป้าหมาย watchOS
117MasterChief96

ไม่แน่ใจว่าฉันติดตาม คุณกำลังตรวจสอบ targetEnvironment อยู่ที่ไหน / อย่างไร
สตีเฟ่น

ฉันไม่ได้ใช้จริงๆนี้มาก่อน #if targetEnvironment(watchOS)แต่ผมคิดว่าสิ่งที่ต้องการ หากเป็นไปได้ด้วย watchOS และจากนั้นภายในคุณสามารถตรวจสอบรุ่นสำหรับ
watchOS

ขออภัยนี่ไม่ใช่สิ่งที่ฉันขอ #if targetEnvironment คือ watchOS มันจะต้องทำงานบนนาฬิกา ฉันกำลังมองหาเช็คจาก iOS
Stephen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.