- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我已经在我们的应用程序中实现了 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,看起来这不是错误,而是设计使然。
您可以在 application:continueUserActivity:restorationHandler
委托(delegate)中恢复您的事件,在我的例子中它没有被调用。
好吧,我的错误是你需要在 application:didFinishLaunchingWithOptions:
方法中返回 YES,否则如果你返回 NO,则 application:continueUserActivity:restorationHandler
不是打电话。
我们已经在我们的应用程序中实现了 FB,所以我们返回 [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions]
,这将返回 NO。
我已将 application:didFinishLaunchingWithOptions:
函数中的代码更改为此
if (launchOptions && [[launchOptions allKeys] containsObject:UIApplicationLaunchOptionsUserActivityDictionaryKey]) {
return YES;
}
else {
return [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
}
这样 application:continueUserActivity:restorationHandler
委托(delegate)被成功调用,事件可以成功恢复。
关于ios Handoff 在 launchOptions 中缺少 NSUserActivity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36792487/
我正在尝试从 UIApplicationDelegate 获取 launchOptions 的值 func application(application: UIApplication, didFin
我正在将推送通知从 Django 应用程序(使用 django-push-notifications )发送到 iOS 应用程序。该应用程序面向 iOS 13,我在运行 iOS 13.3.1 的 iP
在我的应用程序中,我添加了推送通知服务,一切正常。需要在 App 未处于事件或后台模式时处理通知。 我为此添加了如下代码。在方法中 - (BOOL)application:(UIApplication
我正在尝试为推送通知添加异步查找,但在将 launchOptions 传递给*@selector 时遇到问题。你能告诉我需要改变什么吗? - (BOOL)application:(UIApplicat
使用最新的 FB iOS SDKS 和 Parse,以及 ParseFacebookUtilsV4 pod 'FBSDKCoreKit' pod 'FBSDKShareKit' pod 'FBS
我能够在 application 方法中处理 launchOptions 值(因为很明显,参数被传递给它)。我所做的基本上是通过在 Share 菜单中选择我的应用程序来从导入图像的用户那里接收图像:
我在这里阅读了很多关于在应用程序未运行时接收推送通知的问题(多于在后台,这意味着它已完全关闭)。 This question in particular最有助于弄清楚如何确定一个人是否正在使用 lau
我在这里很困惑 - 我正在尝试检测我的应用程序是否从 LocalNotification 启动。但是我所有的代码都很乏味。 func application(application: UIApplic
我正在尝试将 facebook 登录集成到我的解析应用程序中。我遵循了解析教程中提到的每一步。在下面的代码中,我遇到了编译错误。 func application(application: UIAp
我正在尝试在应用程序完全关闭(终止)的情况下获得预定的 UILocalNotification,因为方法 didReceiveLocalNotification: 没有被调用,我正在尝试使用以下代码:
启动选项始终为零。 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDict
我想在 didFinishLaunchingWithOptions 中捕获 launchOptions,但在 applicationDidBecomeActive 中(当我的应用获得焦点时)。例如,我
我正在尝试在我的应用程序中打开一个 .pdf 文件。我调整了 Info.plist,以便可以在我的应用程序中打开 .pdf。 我使用以下代码: - (BOOL)application:(UIAppli
我的应用程序需要从 Remotenotification 获取一些数据,以便将第一页推送到特定页面,例如 FACEBOOK 应用程序,但现在我无法从它始终显示的 didFinishLaunchingW
因为我更新了我的 AppDelegate 类中的所有 Notification 方法。 PushNotification 在应用打开和关闭模式时接收。当我的应用程序关闭并收到通知并尝试点击通知时,我遇
我已将我的代码转换为 swift 3,并且已提交到应用商店。当他们打开应用程序时,它会在第一时间崩溃。结果,我检查了我的崩溃日志,它在这一行崩溃了。 if let myLaunchOption
这是我在 swift 2.2 中的代码,我已经写好了 didfinishLaunchingWithOptions 作为 if let locationValue : AnyObject? = laun
我已经在我们的应用程序中实现了 Handoff,当应用程序在前台或后台运行时,它可以很好地用于 Web 到应用程序的切换,反之亦然。 但是,如果应用未运行,那么如果用户从 Web 到应用切换启动应用,
我希望我的应用程序在通过单击通知启动应用程序时执行特定操作。我想在应用程序已经进入后台运行时执行这些特定操作,但也希望在通过单击通知从头开始(未运行到后台)启动应用程序时执行这些特定操作。 当应用程序
我正在使用 Swift 构建一个接收推送通知的应用程序。我在 JSON 中发送自定义值。 我通过通知打开应用程序,所以我知道我必须在“didFinishLaunchingWithOptions”中执行
我是一名优秀的程序员,十分优秀!