【问题标题】:Handle apple-reference-documentation:// url scheme in web view在 web 视图中处理 apple-reference-documentation:// url 方案
【发布时间】:2017-09-22 13:42:16
【问题描述】:

我想展示一些苹果文档参考,例如NSTableView。 在应用中。

我知道,例如,NSTableView 位于 apple-reference-documentation://hs_JTB0H3I。如果我在WKWebView 实例中加载带有URLURLRequest,Xcode 会打开其文档浏览器并显示文档。

谁能帮我在我的应用程序中而不是在 Xcode 文档浏览器中显示 url。

代码如下:

let path = "apple-reference-documentation://hsCsDTDolH"
if let url = URL(string: path) {
    let request = URLRequest(url: url)
    webView.load(request) // webView is WKWebView
}

【问题讨论】:

  • 我在本地系统中找不到任何与“hsCsDTDolH”或“apple-reference-documentation”相关的内容。
  • 是的,我知道本地系统中可能没有这样的文件。但是如果您在 safari 中搜索 apple-reference-documentation://hs_JTB0H3I,系统会询问您是否要允许此页面打开 Xcode.app。如果您同意,文档文件会显示在 Xcode 的文档浏览器中。
  • 所以,我在问是否有办法从 Xcode 的文档浏览器中获取数据,或者 Xcode.app 中是否有应用程序/工具来获取这些数据。
  • 我一直在寻找一种解决方案,以便在我的应用程序中以某种视图查看 Xcode 文档,但最终使用了指向 Apple 网站的链接。我发现了一些资源,这些资源可能会在一段时间内导致一种方法。首先,查看 /Applications/Xcode.app/Contents/SharedFrameworks/DNTDocumentationSupport.framework/Resources/external/index.docsindex - 这似乎包含指向文档页面的链接列表,例如 apple-reference-documentation://cccallkit用于 Obj-C 中的 CallKit 和 apple-reference-documentation://cscallkit 用于 Swift 中的 CallKit。如何使用此信息并在视图中显示文档 - 尚无解决方案。

标签: swift xcode cocoa wkwebview


【解决方案1】:

不,没有办法从 Xcode 的文档浏览器读取数据(这会破坏应用程序之间存在的分隔)。不,Xcode 中没有单独的应用程序或工具来获取文档,它是 Xcode 本身代码的一部分。

apple-reference-documentation:// 是 Xcode 说它可以处理的自定义 URL 方案(请参阅here 的简要说明)。然后 Xcode 使用 URL 的其余部分来确定要从开发者站点中提取和显示的页面。

为了劫持这个 URL 方案,你必须将你的应用程序设置为能够处理它,弄清楚 Xcode 如何确定 hs_JTB0H3I 表示 https://developer.apple.com/documentation/appkit/nstableview,打开正确的网页,然后让系统让你的应用程序打开 apple-reference-documentation:// 链接而不是 Xcode(如果存在的话,可能没有简单的方法)。

【讨论】:

  • 感谢您的回答。但是 Xcode 不是指网站。它也可以离线工作,因此我认为 Xcode 从其应用程序内容中获取文档页面。也许有一个命令行工具可以从磁盘中提取信息?
猜你喜欢
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 2012-01-05
  • 2019-07-28
  • 2010-12-31
  • 2011-07-03
  • 2011-03-15
  • 1970-01-01
相关资源
最近更新 更多