ios - 从iPhone的Watch触发搜寻

标签 ios iphone xcode apple-watch

是否可以通过Watch代码在iPhone应用程序中触发segue?我一直在研究OS2,它说在两个应用程序都处于 Activity 状态时可以传输数据,但想知道是否可以从Watch代码中调用iPhone应用程序中的代码。

最佳答案

您不能将segue从WatchApp(子应用程序)推送到iPhone App(父应用程序),但可以肯定地将数据从WatchApp发送到iPhone,并根据该数据可以在iPhone Application上执行segue。

要将更新从Apple Watch发送到iPhone App,您必须在openParentApplication中实现WatchKit Extension

class func openParentApplication(userInfo: [NSObject : AnyObject], reply: (([NSObject : AnyObject], NSError?) -> Void)?) -> Bool

创建NSDictionary并使用以下代码传递该数据:
func updateInformationToParentApp(emergencyInfo : [NSObject : AnyObject]!){
  // Call the parent application from Apple Watch
  WKInterfaceController.openParentApplication(emergencyInfo) { (returnUpdate, error) -> Void in
    if((error) == nil){
      print("Data send successfully");
    } else {
      print("Error : \(error?.localizedDescription)");
    }
  }
}

AppDelegate中实现以下方法以处理WatchApp更新。
func application(application: UIApplication, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]?, reply: ([NSObject : AnyObject]?) -> Void){
  NSLog("Handler Apple Watch Event ");
  watchEvent(userInfo, reply: reply);
}

func watchEvent(userInfo: [NSObject : AnyObject]!, reply: (([NSObject : AnyObject]!) ->Void)!) {
  let dic = userInfo as NSDictionary;
  NSLog("dic %@", dic);

  // retrieved parameters from Apple Watch
  print(userInfo["Key"])
  //Perform Segue from Here according to Dictionary Info        
  //Pass back values to Apple Watch
  var returnUpdate = Dictionary<String,AnyObject>()
  let watchAppMessage = "Meesage Back To Apple Watch" as NSString;
  returnUpdate["message"] = NSKeyedArchiver.archivedDataWithRootObject(watchAppMessage);
  reply(returnUpdate)   
}

关于ios - 从iPhone的Watch触发搜寻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35287800/

相关文章:

ios - 在 iOS 的 ViewController 中声明 View 时,为什么在 Swift 中使用 "weak"关键字

ios - 使用 swift 查找 SKNode 的相对 Y 位置

ios - swift:合并不重叠的图像

ios - quickblox 推送通知在生产模式下不起作用

iphone - CGRectMake(currentobject.frame.origin.x, currentObject.fram..更快的方法?

c++ - 如何在 Mac 上使用带有 C++ 的 brew opencv3?

ios - xcode预览模拟器继承自哪里?

iphone - 几秒钟后用改变颜色填充圆圈

iphone - Xcode 5 中的自定义字体

ios - 使用 Cocoa pods 设置 RealmSwift