我有一个iPhone应用程序,并添加了一个WatchKitExtension。从iPhone应用程序中,我想将一个String传递给WatchApp,它应该改变手表上的图像。
MMWormhole.m & .h。它们是用Obj编写的,所以Xcode会自动为我连接它们。在关于https://github.com/mutualmobile/MMWormhole的教程中,它说我必须用以下方法初始化虫洞:
self.wormhole = [[MMWormhole alloc] initWithApplicationGroupIdentifier:@"group.com.mutualmobile.wormhole"
optionalDirectory:@"wormhole"];...and使用以下方法发送消息:
[self.wormhole passMessageObject:@{@"titleString" : title}
identifier:@"messageIdentifier"];但是实际上我不知道该把它放在哪里,我正在使用Swift在我的iPhone应用程序和 WatchExtension中。
有人能帮帮我吗?
发布于 2015-04-24 16:14:38
我想这取决于不同的应用程序,但是对于一个应用程序,我将侦听器放在我的应用程序委托的didFinishLaunchingWithOptions方法中,在主iOS应用程序中。这是因为用户会使用手表,他们会把信息传送到电话上。
有很多听众..。
var wormhole = MMWormhole(applicationGroupIdentifier: "group", optionalDirectory: nil)
wormhole.listenForMessageWithIdentifier("identifier", listener: { (message) -> Void in
//do stuff
})
wormhole.listenForMessageWithIdentifier("identifier2", listener: { (message) -> Void in
//do stuff
})
wormhole.listenForMessageWithIdentifier("identifier3", listener: { (message) -> Void in
//do stuff
})然后在一个WKInterfaceController中,我发送了一条信息。有时在动作中,有时在willActivate方法中。这真的取决于你的应用程序的流量。
var wormhole = MMWormhole(applicationGroupIdentifier: "group", optionalDirectory: nil)
@IBAction func buttonPushed(){
wormhole.passMessageObject("object", identifier: "identifier1")
}不过,这两种方式都可以工作,我可以很容易地将一个侦听器放在我的手表中,等待某个接口控制器在电话上发起的消息。
发布于 2015-05-20 20:14:51
这是我的指示。希望它们能帮助您使用最简单的用例,然后您就可以从那里扩展。(请记住构造代码以使代码具有实际意义!)
MMWormhole,iPhone Side
把虫洞放在你能到达的地方。注意:您的组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 Side
把虫洞放在你能到达的地方。注意:您的组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")https://stackoverflow.com/questions/29851903
复制相似问题