【问题标题】:Is it possible to download Objective-C and execute it within Webkit?是否可以下载 Objective-C 并在 Webkit 中执行它?
【发布时间】:2011-12-12 18:34:23
【问题描述】:

我正在研究开发基于 HTML/Javascript(使用 UIWebView)的原生(混合)应用程序的可行性,该应用程序一旦安装就能够下载和执行更多的 html 和 javascript 以及 Objective-c*。 Objective-C 代码将由 HTML/Javascript 代码调用。

我认为必须将 Objective-C 编译为静态库。这会起作用吗,还是有其他可用的方法/机制?

  • 指南这样说: “3.3.2 内部使用应用程序不得下载或安装可执行代码。只有在所有脚本、代码和解释器都打包在应用程序中且未下载的情况下,解释代码才能在应用程序中使用。上述唯一例外是脚本和由 Apple 的内置 WebKit 框架下载和运行的代码。”

注意它说脚本和代码可以被Webkit下载和运行。

【问题讨论】:

  • 我相信有一些安全措施可以防止此类代码通过UIWebKit 执行。否则,就会出现恶意软件的流行。
  • Webkit 不是沙盒的吗?这就是为什么指南明确豁免在 Webkit 中下载和执行的脚本和代码。

标签: ios


【解决方案1】:

HTML/JS/CSS 应该没问题,但 Apple 不允许下载和执行 Objective-C 代码,这将导致您的应用被拒绝/从 App Store 快速删除

【讨论】:

  • "3.3.2 内部使用应用程序不得下载或安装可执行代码。如果所有脚本、代码和解释器都打包在应用程序中且未下载,则解释代码只能在应用程序中使用。唯一的例外是由 Apple 内置的 WebKit 框架下载和运行的脚本和代码。”所以它说允许下载和执行脚本和代码。 Javascript 将是下载和执行脚本的示例。那么它所指的允许下载/执行的代码是什么?
  • 代码是不是由 Apple 内置的 WebKit 框架运行的所有内容。所以 JavaScript/HTML/CSS 没问题。 WebKit 是 Safari/Mobile Safari 和 Chrome 使用的浏览器引擎。
  • 如果 Objective-C 代码是从 WebKit 中执行的 Javascript 代码调用的,那么适用于 Javascript 执行的沙盒是否也适用于 Objective-C 执行?如果是这样,那么原则上它应该被允许,因为拒绝的原因是基于安全性,但是如果 Objective-C 代码仍然是沙盒,它也和 JavaScript 一样安全,不是吗?
  • 你不能直接用 JavaScript 调用 Objective-C,你可以像 PhoneGap 那样为你的应用注册一个自定义的 URL 方案并在 UIWebView 中调用类似 myapp://parameter1/parameter2/ 的东西而不是在你的 App Delegate 的 application:handleOpenURL: 方法中做你需要做的事情。同样,不允许您下载 Objective-C 代码并执行它 -> 这样做的人的示例:modmyi.com/content/…
猜你喜欢
  • 2010-12-26
  • 1970-01-01
  • 2014-12-20
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多