【问题标题】:Cocoa: Prevent activation of app when handling a custom URL scheme?Cocoa:在处理自定义 URL 方案时防止激活应用程序?
【发布时间】:2017-10-23 15:05:35
【问题描述】:

我有一个注册自定义 URL 方案的 Cocoa 应用程序:myapp://dostuff。当 URL 打开时(例如从 Safari),我的应用程序接收事件并处理 URL。

到目前为止一切顺利。现在的问题是我的应用程序已激活,并且它的窗口移动到覆盖 Safari 的前台,从中单击了自定义 URL。我希望 Safari 保持活动状态并在后台处理我的应用程序中的自定义 URL。

这可能吗?

我的用例:当在 Safari 中单击自定义 URL 时,我想在 Safari 上方显示一个带有多个选项的弹出菜单。只有当用户从菜单中选择一个选项时,我才希望我的应用程序移到前台。

【问题讨论】:

  • 我不认为这是可能的....但是您可以做一个网页,显示带有选项的警报,如果用户选择打开应用程序的选项,您将其重定向到自定义URL 方案:您的应用的myapp://dostuff
  • 感谢您的建议。不幸的是,这不是一个选项,因为我需要应用程序中的数据(即菜单项)才能显示菜单。
  • 也许在您的应用中提供Safari App Extension 是最好的方法。

标签: objective-c cocoa url-scheme


【解决方案1】:

这是不可能的。自定义 URI 方案用于在应用程序之间移动 - 没有“在后台加载”选项。

您有两种解决方法:

  1. 使用可以将您需要的数据直接提供给网站的后端,而不是尝试通过本地应用程序提供数据。
  2. 按照您当前的操作从页面打开应用程序,然后在应用程序启动后将选项提供给用户。像 Branch.io 这样的深度链接平台(完全披露:我在 Branch 团队)可以帮助解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2016-09-17
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    相关资源
    最近更新 更多