CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN này bàn về các phương thức kết nối, kiểm soát và truyền dữ liệu (Swift) giữa iPhone và iWatch được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm tới bài viết này thì nhớ like nhé.
Gần đây tôi đang thực hiện một dự án liên quan đến việc chuyển dữ liệu giữa thiết bị iPhone và đồng hồ và điều khiển các bước nhảy giao diện của nhau. Tôi đã tìm kiếm rất nhiều thông tin trên Internet và thấy rằng các trang web trong nước cũng không giới thiệu nhiều về khía cạnh này, còn các trang web nước ngoài thì không. chưa đầy đủ nên tôi viết bài này ở đây để các bạn tham khảo. Tôi hy vọng Chúa có thể cho tôi một số lời khuyên.
Không cần phải nói nhiều về việc ghép nối iPhone và iWatch. Trên tìm kiếm của Baidu có rất nhiều câu trả lời.
Có hai tình huống để mã để iPhone tương tác với iWatch, tùy thuộc vào hệ thống iWatch. Phương thức của iWatch OS1 khác với OS2 và 3. Trong hệ thống OS1, mã để iWatch gửi dữ liệu như sau.
?
1
2
3
|
hãy để userInfo:[String:String] = [
"chìa khóa"
:
"giá trị"
]
WKInterfaceController.openParentApplication(userInfo) { (replyInfo, error) -> Void trong
}
|
Chức năng này dùng để gửi và nhận tin nhắn cùng lúc. Câu trả lời nhận được từ iPhone là replyInfo. Trong AppDelegate trên iPhone, mã nhận tin nhắn:
?
1
2
|
func application(application: UIApplication, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]?, reply: (([NSObject : AnyObject]!) -> Void)!) {
}
|
Tin nhắn nhận được là userInfo và dữ liệu được trả về iWatch là tin nhắn trả lời.
Đoạn mã trên chỉ áp dụng cho watchOS1. Các hệ thống sau này sẽ không có API này. Đối với OS2 hoặc OS3, framework được sử dụng là WatchConnectivity. Ở đây, tôi sẽ trực tiếp cung cấp lớp tôi đã viết và đưa ra phần giới thiệu cũng như phương pháp sử dụng. mã và viết các chức năng của riêng bạn nơi tôi đã nhận xét.
Đây là mã dành cho iPhone:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
nhập khẩu
UIKit
nhập khẩu
XemKết nối
lớp học
IwatchSessionUtil: NSObject, WCSessionDelegate {
tĩnh
hãy để shareManager = IwatchSessionUtil()
riêng tư
ghi đè init()
{
siêu
.nhiệt()
}
riêng tư
hãy để phiên: WCSession? = WCSession.isSupported() ? WCSession.
mặc định
() : không có
hàm startSession(){
phiên?.delegate = tự
phiên?.kích hoạt()
}
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Lỗi?) {
in(
"Việc khớp AppleWatch đã hoàn tất"
)
}
chức năng sessionDidBecomeInactive(_ session: WCSession) {
}
hàm sessionDidDeactivate(_ session: WCSession) {
}
func session(_ session: WCSession, didReceiveMessage message: [Chuỗi: Bất kỳ], replyHandler:
@thoát khỏi
([Chuỗi: Bất kỳ]) -> Không) {
}
func sendMessageToWatch(key:String,value:Any) {
phiên?.sendMessage([key : value], replyHandler: { (dict:Dictionary) trong
}, errorHandler: { (Lỗi) trong
})
}
}
|
Phương thức gọi:
1. Trước tiên hãy thêm mã vào hàm didFinishLaunchingWithOptions của AppDelegate của iPhone.
IwatchSessionUtil.shareManager.startSession() đảm bảo rằng WCSession có thể khớp với Ứng dụng ở phía đồng hồ.
2. Gửi tin nhắn: Chỉ cần gọi phương thức IwatchSessionUtil.shareManager.sendMessageToWatch(key:, value:). Sau khi gửi, thao tác sau khi nhận được phản hồi từ phía đồng hồ có thể được chỉnh sửa trực tiếp trong hàm lớp sendMessage.
3. SendMessage ở phía đồng hồ gửi thông tin đến iPhone và didReceiveMessage ở phía iPhone nhận được thông tin. Một loạt thao tác đã được nhận xét ở trên.
Bây giờ phần giới thiệu về phía iPhone đã hoàn tất, chúng ta hãy viết code cho phía đồng hồ. Thực ra nó không khác gì phía iPhone chỉ là viết ra phần này cho đầy đủ thôi.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
nhập khẩu
Bộ theo dõi
nhập khẩu
XemKết nối
lớp học
WatchSessionUtil: NSObject, WCSessionDelegate {
tĩnh
hãy để sharedManager = WatchSessionUtil()
riêng tư
ghi đè init()
{
siêu
.nhiệt()
}
riêng tư
hãy để phiên: WCSession? = WCSession.isSupported() ? WCSession.
mặc định
() : không có
hàm startSession(){
phiên?.delegate=self
phiên?.kích hoạt()
}
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Lỗi?) {
}
func session(_ session: WCSession, didReceiveMessage message: [Chuỗi: Bất kỳ], replyHandler:
@thoát khỏi
([Chuỗi: Bất kỳ]) -> Không) {
}
func sendMessage(key:String, value:Any){
phiên?.sendMessage([key : value], replyHandler: { (trả lời: [Chuỗi : Bất kỳ]) trong
}, errorHandler: { (Lỗi) trong
})
}
}
|
Lớp đồng hồ được thêm vào thư mục Tiện ích mở rộng và phương thức được gọi:
1. Viết WatchSessionUtil.sharedManager.startSession() vào hàm applicationDidFinishLaunching của tệp ExtensionDelegate.
2. Gửi tin nhắn: Chỉ cần gọi phương thức IwatchSessionUtil.shareManager.sendMessageToWatch(key: , value: ). Sau khi gửi, thao tác sau khi nhận được phản hồi từ phía iPhone có thể được chỉnh sửa trực tiếp trong hàm lớp sendMessage.
3. SendMessage ở phía iPhone gửi thông tin đến đồng hồ và didReceiveMessage ở phía đồng hồ nhận thông tin. Một loạt thao tác đã được nhận xét ở trên.
Trên đây là phương pháp mà biên tập viên giới thiệu với các bạn về kết nối, điều khiển và truyền dữ liệu (Swift) giữa iPhone và iWatch. Hy vọng nó sẽ hữu ích với các bạn nếu có thắc mắc vui lòng để lại tin nhắn cho mình. biên tập viên sẽ trả lời bạn kịp thời. Tôi cũng xin cảm ơn mọi người đã ủng hộ trang web của tôi! .
Liên kết gốc: http://www.cnblogs.com/qian-gu-ling/p/6638982.html.
Cuối cùng, bài viết về phương thức kết nối, điều khiển và truyền dữ liệu (Swift) giữa iPhone và iWatch kết thúc tại đây. Nếu bạn muốn biết thêm về phương thức kết nối, điều khiển và truyền dữ liệu (Swift) giữa iPhone và iWatch, vui lòng Tìm kiếm các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!