【问题标题】:NSUserActivity and CoreSpotlight at the same timeNSUserActivity 和 CoreSpotlight 同时进行
【发布时间】:2015-10-27 23:22:21
【问题描述】:

我打算同时在我的应用上同时使用 NSUserActivityCoreSpotlight,但不知何故我无法让它按我的预期工作。

我目前在一家零售商在线商店工作。

需要以下步骤:

第 1 步。 用户在我的 iPhone 应用程序中访问的每个产品都将被一个 NSUserActivity 对象识别,该对象将显示在 Search API 中。此外,它是公开的,并且有缩略图、标题、描述和有效期。

第 2 步。 用户在 iPhone 搜索上进行搜索,产品确实出现在那里。如果用户点击它,它也会显示在应用程序中。到目前为止,所有这些都很容易实现。

第 3 步。 用户有权“保存”该产品,因此在他这样做之前没有其他人可以得到它。因此,一旦产品被保存,我想修改 NSUserActivity 的详细信息,以便它可以显示在产品保存的描述上。据我所知,我不能这样做,因为没有 API 可以做到这一点。

理想情况下,我想修改描述和图像,让用户知道产品现在属于他,所以我会将 NSUserActivity 设为私有并修改其属性,但我找不到方法.

另一方面,我可以使用 NSUserActivity 处理公共产品并使用 CoreSpotlight 处理保存的产品,但在这种情况下,应用程序会显示两次相同的产品。一种是得救的和私人的,一种是公开的。我想避免的事情,因为我希望你只看到一次相同的产品,在这种情况下,你保存的那个是你的。

有什么方法可以实现吗?

【问题讨论】:

  • 考虑添加您尝试过的内容、无效的内容等。
  • The user has the right to 'save' that product, so nobody else can get it before he does. 是什么意思?这是否应该将公开上市从苹果指数中撤出?我不确定目前是否提供这种能力。
  • 为什么不能修改活动?这不是他们的唯一目的,即根据以前的客户端执行操作生成结果。只需重新索引有问题的项目。你应该根据一些标识符来索引它们,天气它是唯一的或域。在某些情况下,您可以简单地删除它然后重新索引。无论哪种方式,您选择哪种方式都不会太复杂。如果您可以检索_该项目,您已经知道如何识别它,所以只需冲洗并重复。至于将其设为私有,那么您就违背了 API 的意图。听起来你不确定自己想要什么

标签: ios search ios9 corespotlight


【解决方案1】:

防止物品重复非常容易。您需要做的就是在 relatedUniqueIdentifier (NSUserActivity) 和 uniqueIdentifier (CSSearchableItem) 中指定相同的值。
这也将提高您的排名。

详情请见the documentation

【讨论】:

    猜你喜欢
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    相关资源
    最近更新 更多