【问题标题】:iOS handoff from phone to macbook safari/chromeiOS 从 iphone 切换到 macbook safari/chrome
【发布时间】:2015-08-16 01:28:24
【问题描述】:

我想从我的应用程序发送一个 URL,以便使用切换在笔记本电脑网络浏览器上打开。我已将活动类型添加到我的应用程序的NSUserActivityTypes。到目前为止,这是我的代码:

- (void)startHandoff {
    NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"com.me.browse"];
    activity.webpageURL = [NSURL URLWithString:_wakeUrl];
    [activity becomeCurrent];
}

它似乎没有出现在我的扩展坞上 - 如果您想使用 safari,它是否需要一个特殊的 Activity Type

【问题讨论】:

  • 它是否适用于 Mobile Safari?如果您在手机中打开 Safari,您的 Mac 是否允许您从桌面恢复?我问的是,我们可以查看手机到桌面的切换是否在您的设备上正常工作
  • 是的,它适用于 chrome
  • 仔细检查NSUserActivityTypes 中的指定活动是否与您在init 方法中指定的活动相匹配。

标签: ios objective-c ios8 handoff


【解决方案1】:

经过测试,看来您需要将NSUserActivity声明为实例变量:

所以这不起作用:

@interface TestViewController () {
}

@end

@implementation TestViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //init hand off
    NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"com.app.browse"];
    activity.webpageURL = [NSURL URLWithString:@"http://www.stackoverflow.com"];
    [activity becomeCurrent];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

但这很好用:

@interface TestViewController () {
      NSUserActivity *activity;
}

@end

@implementation TestViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //init hand off
   activity = [[NSUserActivity alloc] initWithActivityType:@"com.app.browse"];
    activity.webpageURL = [NSURL URLWithString:@"http://www.stackoverflow.com"];
    [activity becomeCurrent];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

不知道为什么,我现在正在研究它

【讨论】:

  • 这是正确的,尽管我的应用程序/手表应用程序中有其他无法运行的切换功能 - 我刚刚重新启动设备,这似乎解决了问题
  • 你也可以将activity声明为属性
  • 是的,因为默认情况下,读写属性将由实例变量支持,该变量将再次由编译器自动合成。
  • 我认为您的 NSUserActivity 对象在 viewDidLoad 完成后立即被释放。这就是为什么您的第一种方法不起作用的原因。
猜你喜欢
  • 1970-01-01
  • 2012-01-18
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
相关资源
最近更新 更多