我的设备:
- iPad Mini(最新),iOS 8 dp5。
- Macbook Air、优胜美地 dp5。
我在上述两个设备之间进行了切换。 Safari、邮件、消息、日历等所有切换都没有问题。
我什至可以在 Air 上的网站和 iPad 上的本机应用程序之间切换。
我还不能做的是从 iPad 上的本机应用程序转到 Air 上 Safari 中的网站。
对于在我的本机应用程序中加载的第一个视图控制器,我有以下内容:
- (void)viewDidLoad
{
[super viewDidLoad];
NSUserActivity *webHandoff = [[NSUserActivity alloc] initWithActivityType:@"com.myApp.iphone.staging.webbrowsing"];
webHandoff.webpageURL = [NSURL URLWithString:@"http://staging.myApp.com"];
[webHandoff becomeCurrent];
}
在我的应用程序的 Info.plist 文件中,我有以下内容:
<key>NSUserActivityTypes</key>
<array>
<string>com.myApp.iphone.staging.webbrowsing</string>
</array>
我是否缺少某些内容或配置不正确?
谢谢你的帮助!
我对我的代码做了两个重大更改:
1)在viewDidAppear/disappear中配置/销毁并设置NSUserActivity对象,而不是viewDidLoad:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSUserActivity *webHandoff = [[NSUserActivity alloc] initWithActivityType:@"com.myApp.iphone.staging.web-browsing"];
webHandoff.webpageURL = self.handoffWebpageURL;
[self setUserActivity:webHandoff];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[self.userActivity invalidate];
}
2)由于UIViewController是UIResponder的子类,并且UIResponders有一个userActivity属性,而不是调用[webHandoff becomeCurrent]
我只是简单地打电话[self setUserActivity:webHandoff];
不知道为什么将其移出 viewDidLoad 会产生任何影响,也不知道为什么我需要将其设置为 NSUserActivity 的 viewController 实例,但上面的更改为我在整个应用程序中提供了可靠的切换体验。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)