2014-11-26 32 views
7

Tôi đang khám phá SDK WatchKit.Cách thiết lập kênh liên lạc giữa Tiện ích mở rộng và ứng dụng Apple Watch và Ứng dụng iOS

Khi tôi có ứng dụng WatchKit, bạn có thể đặt giá trị (ví dụ: Văn bản, cài đặt) từ ứng dụng iPhone trên ứng dụng WatchKit không? Tôi có thể gọi các chức năng trong phần mở rộng ứng dụng WatchKit từ ứng dụng iPhone không?

Nếu ai đó quản lý để thực hiện việc này, họ có thể đăng một ví dụ không? Cảm ơn!

+0

Có vẻ như một câu hỏi rộng. Bỏ phiếu để đóng. – trojanfoe

+0

@trojanfoe Có lẽ nếu điều này được lặp lại như _Làm thế nào để thiết lập một kênh giao tiếp giữa Apple Watch Extension/App và iOS App nó sẽ có ý nghĩa_. Hiện tại không có cách tiếp cận tài liệu chính thức, nhưng có thể được sử dụng trong tương lai gần. – GoodSp33d

+0

Cảm ơn, tôi đã thay đổi tiêu đề theo đề xuất của bạn – cujo30227

Trả lời

9

Bạn có thể sử dụng Nhóm ứng dụng và SharedDefaults để chia sẻ dữ liệu giữa WatchApp/Extension và Ứng dụng trên điện thoại. xem ví dụ: WatchKit SDK not retrieving data from NSUserDefaults

Nghiên cứu trên iOS8 Extension/App Groups/sharedDefaults và tiện ích watchkit sẽ có ý nghĩa hơn.

Mẫu này lấy UIImage từ biểu đồ Shinobi, lưu nó vào mặc định dưới dạng hình ảnh. Sau đó mở rộng nhặt hình ảnh thông qua giá trị mặc định và cho thấy nó trên đồng hồ

https://github.com/ChrisGrant/ChartWatch

một này sử dụng kết nối multipeer có đồng hồ nói chuyện với điện thoại.

https://github.com/jsclayton/swatches

nhưng điều này sử dụng Bluetooth và tôi đoán hệ điều hành Xem cũng liên lạc vào điện thoại bằng cách sử dụng bluetooth vì vậy không chắc chắn nếu họ sẽ cả hai được cho phép.

Chúng tôi chưa có thiết bị để thử nghiệm vì vậy ứng dụng/swatches chỉ xem thiết bị mô phỏng nói chuyện với iphone giả lập trên cùng một máy Mac.

Nếu bạn đã từng thực hiện chương trình AV ở mức độ thấp, bạn biết ứng dụng có thể chạy trên trình giả lập nhưng không thành công trên thiết bị vì trình mô phỏng có thể lừa một lớp phương tiện Mac OSX. Có thể giống nhau cho bluetooth.

mẫu khác

https://github.com/search?q=WKInterfaceController&type=Code

+0

hoạt động tuyệt vời này .. cảm ơn u rất nhiều – iOSdev

2

Bạn có thể thấy thư viện này https://github.com/mutualmobile/MMWormhole

Nó làm tin nhắn đi qua giữa các ứng dụng iOS và phần mở rộng.

+0

sử dụng các nhóm ứng dụng không hoạt động cho tôi .. tôi đã chạy ứng dụng từ github tại sao dữ liệu của tôi không được chia sẻ giữa đồng hồ và iphone? ? – iOSdev

+0

bạn phải bật nhóm ứng dụng từ cài đặt dự án (cần tài khoản nhà phát triển có trả tiền của Apple) – mohamedghonemi

3

Có một số giải pháp: CoreData, NSKeyedUnarchiverNSUserDefaults. Với nền chung để chia sẻ tài nguyên dữ liệu chung (Cơ sở dữ liệu, tệp hoặc cài đặt mặc định của người dùng), điều này cho phép các khả năng của Nhóm ứng dụng trên cả hai thuộc tính dự án mục tiêu.

enter image description here

Trong post Sau đây là giải thích làm thế nào để làm điều đó với các thiết lập mặc định và bạn cũng có thể tải về các dự án trình diễn.

3

Với watchOS2 tại của Apple hỗ trợ Xem Khung kết nối để chuyển thông tin từ phần mở rộng hồ để ứng dụng và ngược lại.

Trích từ tài liệu của Apple

Giao tiếp với Companion của bạn iOS App

Khung Xem Khả năng kết nối cho phép bạn tạo một kênh thông tin liên lạc hai chiều giữa mở rộng WatchKit của bạn và đồng hành ứng dụng iOS của bạn. Sử dụng kênh này để điều phối các hoạt động giữa hai quy trình. Ví dụ: bạn có thể sử dụng khung này để đẩy thông tin cập nhật từ ứng dụng iOS của bạn lên tiện ích WatchKit. Khung công tác cung cấp các tùy chọn để chuyển dữ liệu trong nền hoặc trong khi cả hai ứng dụng đang hoạt động và thay thế phương thức openParentApplication: reply: hiện có của lớp WKInterfaceController.

Để biết thêm thông tin về các lớp của khung Kết nối đồng hồ, hãy xem Watch Connectivity Framework Reference.

Lấy từ Apple's Developers Library

Các vấn đề liên quan