【问题标题】:Spotlight Search - deep link integrationSpotlight 搜索 - 深度链接集成
【发布时间】:2015-08-17 16:21:49
【问题描述】:

我在聚光灯下收到结果,但是当用户点击它时,它只会启动应用程序,我无法继续使用该特定产品。

如果有人能帮助我,我会很高兴!

谢谢!

到目前为止,这是我的代码:

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {

    if ([userActivity.activityType isEqualToString:Identifier]) {

        UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
        tabBarController.selectedIndex = 1;
    }

    return YES;
}

【问题讨论】:

  • 究竟是哪一部分让你在segueing中遇到困难?这里有数字变量

标签: ios objective-c ios9 xcode7 corespotlight


【解决方案1】:

您正在检查 activityType 是否有错误的值。

从聚光灯下启动应用时,活动类型为 CSSearchableItemActionTypeuserInfo 有一个键值对 CSSearchableItemActionType,其中包含您的产品标识符。

简单的 Objective-C 示例:

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
    if ([userActivity.activityType isEqualToString:CSSearchableItemActionType])
    {
        NSString *uniqueIdentifier = userActivity.userInfo[CSSearchableItemActivityIdentifier];
        // do stuff to show detail for product with uniqueIdentifier
        return YES; // because you did handle the activity
    }
    return NO; // because you did NOT handle the activity
}

简单的 Swift 示例:

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool
{

    if userActivity.activityType == CSSearchableItemActionType {
        let uniqueIdentifier = userActivity.userInfo[CSSearchableItemActivityIdentifier]
        // do stuff to show detail for product with uniqueIdentifier
        return true // because you did handle the activity
    }
    return false // because you did NOT handle the activity
}

【讨论】:

  • 他非常适合不返回 CSSearchableItemActionType 作为活动类型的 NSUserActivity 索引。
  • @guhan0 那么如果他使用 NSUserActivity 获取产品详细信息,那么无论哪种方式,他都使用错误。
【解决方案2】:

以下检查可能会对您有所帮助:

  1. 检查tabBarController是否分配正确还是nil?
  2. 是 UITabBarController 委托,didSelectViewController 获取 叫什么?
  3. 稍后,使用断点调试每个导航部分 并尝试找出问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-31
    • 2013-11-30
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    相关资源
    最近更新 更多