【问题标题】:WatchKit App as Controller for iOS DeviceWatchKit App 作为 iOS 设备的控制器
【发布时间】:2015-05-15 04:53:58
【问题描述】:

是否可以让 WatchKit 应用成为其父 iOS 应用的控制器?

我想在 WatchKit 应用程序上设置一些按钮,以在 iPhone 应用程序上执行操作,但我找不到实现该操作的方法。尝试发送通知 - 不高兴。

尝试使用WKInterfaceController.openParentApplication,但这也不起作用。

有人能指出正确的方向吗?

谢谢。

【问题讨论】:

  • 是的,你可以。请参阅此stackoverflow.com/questions/27190949/…,了解如何将数据发送到您的 iOS 应用。
  • 从我的阅读中只能在后台模式下打开手机上的应用程序。不是我需要的
  • 确实如此,但是如果用户已经打开了应用程序,那么您可以控制直播应用程序。我有一个应用程序可以做到这一点。当用户在其 iPhone 上打开应用时,手表应用上会执行一些操作来更新 iOS 应用上的 UI。
  • 如何在模拟器中看到它?您是否发送要在字典对象中执行的操作? -- 感谢您的帮助
  • 从 Xcode 启动 WatchKit 应用程序后,您只需在 iPhone 模拟器中点击您的 iPhone 应用程序即可打开它。是的,我发送有关要在字典对象中执行的操作的数据。

标签: ios watchkit


【解决方案1】:

这就是我的 handleWatchKitExtensionRequest 的样子。检查代码中此方法的拼写。您在评论中没有拼写正确,这会导致无法识别的选择器崩溃。

-(void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply
{
    NSString* command = [userInfo objectForKey:@"command"];
    NSString* uuid = [userInfo objectForKey:@"uuid"];

    if (command == nil)
    {
        reply(nil);
    }
    else
    {
        if ([command isEqualToString:@"startTrip"])
        {
            ...
            //The uuid of the trip is returned to the watch app
            reply(@{@"uuid": uuid});
        }
        else if ([command isEqualToString:@"stopTrip"])
        {
            ...                
            reply(nil);
        }
        else if ([command isEqualToString:@"pauseTrip"])
        {
            ...
            reply(nil);
        }
        else if ([command isEqualToString:@"resumeTrip"])
        {
            ...                
            reply(nil);
        }
    }
}

【讨论】:

    【解决方案2】:

    参见@NatashaTheRobot 博客中的示例:

    http://natashatherobot.com/watchkit-open-ios-app-from-watch/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 2019-03-12
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多