ios Handoff在launchOptions中缺少NSUserActivity?

ios Handoff在launchOptions中缺少NSUserActivity?,第1张

概述我在我们的应用程序中实现了Handoff,当应用程序在前台或后台运行时,它适用于Web到应用程序切换,反之亦然. 但是,如果应用程序未运行,那么如果用户从Web启动应用程序到应用程序切换,则在launchOptions字典中,我将获得UIApplicationLaunchOptionsUserActivityDictionaryKey,但缺少对该活动的引用. 看截图: 正如您所看到的,我只获得了N 我在我们的应用程序中实现了Handoff,当应用程序在前台或后台运行时,它适用于Web到应用程序切换,反之亦然.

但是,如果应用程序未运行,那么如果用户从Web启动应用程序到应用程序切换,则在launchOptions字典中,我将获得UIApplicationLaunchOptionsUserActivityDictionaryKey,但缺少对该活动的引用.

看截图:

正如您所看到的,我只获得了NSUserActivity的ID.
这是iOS 9中的错误吗?

有没有办法通过使用ID来获取对活动的引用?

编辑,这是代码,虽然我不认为这是相关的

- (BOol)application:(UIApplication *)application dIDFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    if (launchOptions && [[launchOptions allKeys] containsObject:UIApplicationLaunchOptionsUserActivityDictionaryKey]) {        __block NSUserActivity *activity;        NSDictionary *userActivityDictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey];        if (userActivityDictionary) {            [userActivityDictionary enumerateKeysAndobjectsUsingBlock:^(ID  _Nonnull key,ID  _Nonnull obj,BOol * _Nonnull stop) {                if ([obj isKindOfClass:[NSUserActivity class]]) {                    activity = obj;                }            }];        }        //app was started by URL (deep linking),check parameters        if (activity) {            NSURL *url = activity.webpageURL;            //resume from URL        }    }    return YES;}
解决方法 好,

我已经向Apple提交了一份有关此问题的TSI,似乎这不是一个错误,而是设计.

您可以在应用程序中恢复您的活动:continueUserActivity:restorationHandler委托,在我的情况下没有被调用.

好吧,我的错误是你需要在应用程序中返回YES:dIDFinishLaunchingWithOptions:方法,否则如果你返回NO,应用程序:continueUserActivity:recoverHandler不会被调用.

我们在我们的应用程序中实现了FB,所以我们返回[[FBSDKApplicationDelegate sharedInstance]应用程序:application dIDFinishLaunchingWithOptions:launchOptions],返回NO.

我在应用程序中更改了我们的代码:dIDFinishLaunchingWithOptions:function to this

if (launchOptions && [[launchOptions allKeys] containsObject:UIApplicationLaunchOptionsUserActivityDictionaryKey]) {        return YES;    }else {        return [[FBSDKApplicationDelegate sharedInstance] application:application dIDFinishLaunchingWithOptions:launchOptions];}

这样应用程序:continueUserActivity:recoverHandler委托被成功调用,活动可以成功恢复.

总结

以上是内存溢出为你收集整理的ios Handoff在launchOptions中缺少NSUserActivity?全部内容,希望文章能够帮你解决ios Handoff在launchOptions中缺少NSUserActivity?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1107494.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存