2015-06-16 64 views
1

我正在实施从苹果手表应用程序到iPhone上的目标应用程序的切换。NSUseractivity不工作从苹果手表到iPhone应用程序

在WatchKit扩展viewcontrollers我有以下代码之一:

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

然后,添加在continueUserActivity我的目的地iPhone应用程序的的appDelegate内将以下代码:

-(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

+0

史诗失败对我来说! NSUserActivity在我的Xcode 7上无法正常工作。 完全遵照Apple的文档,在Spotlight的研究中我什么也得不到... – manonthemoon

+0

@manonthemoon我使用的是xcode 6.3 – user3687

回答

0

对于来自观看继续活动iPhone应用程序使用NSUserActivity的Xcode 8斯威夫特-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

相关问题