NSUseractivity无法从苹果手表到iPhone手机应用程序

时间:2015-06-16 13:13:29

标签: ios handoff

我正在实施从苹果手表应用程序切换到我的iphone上的目标应用程序。

在其中一个WatchKit Extension视图控制器上,我有以下代码:

myActivity = [[NSUserActivity alloc]
                              initWithActivityType: @"com.newsApp.shownews"];
myActivity.userInfo = @{@"newsID":[self.newsID objectAtIndex:0]};
myActivity.title = @"shownews";
myActivity.delegate = self;
[myActivity becomeCurrent];

然后我在我的目标iphone应用程序的appDelegate内的continueUserActivity中添加以下代码:

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler
{
    if ([userActivity.activityType  isEqual: @"com.newsApp.shownews"]) {
        UIStoryboard *mainStoryboard = self.window.rootViewController.storyboard;
        ShownewsViewController *detailViewController = (ShownewsViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"ShownewsViewController"];

        detailViewController.post_ID = [userActivity.userInfo objectForKey:@"newsID"];

        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];

        [self.window.rootViewController presentViewController:navigationController animated:YES completion:NULL];

    }   
    return YES;
}

问题是userActivity.userInfo为空,但userActivity.activityType已正确设置为com.newsApp.shownews

2 个答案:

答案 0 :(得分:0)

尝试在NSUserActivity对象上设置requiredUserInfoKeys

答案 1 :(得分:0)

要继续活动观看 iPhone 应用,请使用NSUserActivity Xcode 8 Swift-3: -

enter image description here

观看目标:

@IBAction func navigateToiPhoneApp() {
      //  let userActivity = NSUserActivity(activityType: "WatchKitHandoff.Notification.com")
        //userActivity.ac
        self.updateUserActivity("com.WatchKit.Notification.", userInfo:["key":"value"], webpageURL:nil)
    }

iPhone目标:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
            print("continue activity2")
            restorationHandler([self.window!.rootViewController!])
            return true
        }

更新info.plist enter image description here

模拟器在Xcode-8.1

之前不支持Handoff