Вот мои инструкции. Надеюсь, они помогут вам с самым простым вариантом использования, а затем вы сможете расширить его. (Не забудьте структурировать свой код так, чтобы он действительно имел смысл!)
- Добавьте MMWormhole (.h и .m) в свой проект. Если вы знаете, как использовать Cocoapods, сделайте это, но в противном случае просто используйте подмодули git. (я использую подмодули git)
- Поскольку вам нужно, чтобы .h был виден из Swift, вам нужно использовать заголовок-мост.
- Настройте группу приложений, для чего необходимо использовать портал разработчика. Ссылка здесь
- В вашем iPhone создайте цель -> Возможности -> Группы приложений и добавьте свою группу. Если все три флажка не проходят идеально, вернитесь на портал разработчика и убедитесь, что все в порядке, или начните заново.
Червоточина MM, сторона iPhone
Установите червоточину там, где вы можете до нее добраться. ПРИМЕЧАНИЕ: ID вашей группы должен быть указан выше!
let wormhole = MMWormhole(applicationGroupIdentifier: "group.testMe.now", optionalDirectory: nil)
wormhole.listenForMessageWithIdentifier("wormholeMessageFromWatch", listener: { (message ) -> Void in
if let messageFromWatch = message as? String {
// do something with messageFromWatch
}
})
Приложение для iPhone отправляет строку
wormhole.passMessageObject("message from phone to watch", identifier: "wormholeMessageFromPhone")
Приложение для iPhone регистрируется для получения и снова отправляет в обратном вызове через MMWormhole (асинхронно, но круто)
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
universe.initWormhole(.phone, messageHandler: { (message) -> () in
universe.wormhole.passMessageObject("the phone got \(message)", identifier: "wormholeMessageFromPhone")
})
return true
}
MMWormhole, сторона Apple Watch
Установите червоточину там, где вы можете до нее добраться. ПРИМЕЧАНИЕ: ID вашей группы должен быть указан выше!
let wormhole = MMWormhole(applicationGroupIdentifier: "group.testMe.now", optionalDirectory: nil)
wormhole.listenForMessageWithIdentifier("wormholeMessageFromPhone", listener: { (message ) -> Void in
if let messageFromPhone = message as? String {
// do something with messageFromPhone
}
})
MMWormhole, следите за регистрацией приложения для получения
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
universe.initWormhole(.watch, messageHandler: { (message) -> () in
println("MMWormhole Message Came to Watch: \(message)")
})
}
MMWormhole, смотрите, приложение отправляет
// force open the parent application because otherwise the message goes nowhere until the app is opened
WKInterfaceController.openParentApplication(["":""], reply: nil)
universe.wormhole.passMessageObject("[from watch to phone]", identifier: "wormholeMessageFromWatch")
person
Dan Rosenstark
schedule
20.05.2015