4

有谁知道这是什么意思: objc:// 在这个 javascript 示例代码行中: var invokeString = "objc://planner/openPDF?" + encodeURIComponent(fileName);

4

2 回答 2

3

在这种情况下objc://是自定义方案,如 http。除其他外,它可用于打开在 Mac/iOS 上为此协议注册的应用程序(我不确定 Windows 是否支持此功能)。

假设我的 ios-app“Planner”注册为处理 objc://,那么当在浏览器中访问此 URL 时,该应用程序将在我的 iPhone 上打开“Planner”应用程序,并以相同的方式将 URL 传递给应用程序http:// /www.google.com打开您的 Safari(或您的标准浏览器)应用程序并通过 google.com。

另一个例子是 Apple 使用itmss://指向他们的 iTunes 音乐商店的链接。单击其中一个链接将在 iTines 中打开音乐商店。

这是一篇关于在 iOS 上注册方案的文章。以及关于URI 方案的 wiki

更新

正如 Sheikh Heera 评论的那样,它也可以用作在 Objective-c 应用程序 (iOS/Mac) 中的 UIWebView(运行 HTML/JS 页面)和本机应用程序之间进行通信的一种方式。

于 2012-12-11T13:11:03.767 回答
3

我用谷歌搜索了它,发现Calling Objective-C Methods From JavaScript,它说你可以通过调用带有自定义协议的 URL 来调用 Objective-C 方法,比如

document.location="mycustomprotocolname:functionName?param1=value1&param2=value2..."

所以objc://看起来像一个自定义协议在这里调用一个 Objective-C 方法。

于 2012-12-11T13:14:10.760 回答