【问题标题】:ios Terms and scripting languagesios 术语和脚本语言
【发布时间】:2011-06-07 16:42:35
【问题描述】:

我正在研究几个 lua/objective-c 实现,这些实现对于我想要创建的项目看起来很有希望,但除了我希望能够在运行时下载脚本之外。然后我找到了哪些条款:

“应用程序不得下载或安装可执行代码。如果所有脚本、代码和解释器都打包在应用程序中且未下载,则解释代码只能在应用程序中使用。上述唯一例外是下载的脚本和代码并由 Apple 内置的 WebKit 框架运行。”

很明显你不能在运行时下载任何 lua 脚本。 如果我解释正确,您只能运行通过 UIWebView 下载的 javascript 文件。 因此,如果我想通过 uiwebkit(使用 stringByEvaluatingJavaScriptFromString 和 url 编码)创建一个 Objective-c/javascript 桥接器,我看不出有任何违背苹果术语的东西,对吗?你认为这会在性能上过度杀伤吗?

【问题讨论】:

    标签: ios


    【解决方案1】:

    我对通过UIWebView 执行 Javascript 的性能没有经验,但我怀疑如果您打算使用细粒度代码调用stringByEvaluatingJavaScriptFromString,代价会很高。另一方面,没有什么可以阻止您在 UIWebView 中加载完整的 HTML 以及您需要的所有 Javascript 代码,这种方法肯定会确保更好的性能。

    实际上,您可以尝试并遵循另一种方法。实际上可以将 WebKit Javascript 引擎(Javascript 核心)直接嵌入到您的应用程序中。这种方法已经被苹果“批准”了,你可以在here找到它的描述。 (Javascript 游戏引擎 Impact 的创建者 Dominic Szablewski 就是完成此任务的人。

    简而言之,就是将 Javascript Core 编译为静态库,然后将其链接到您的应用程序中。如果您不想自己编译,在我发布的链接中,您还可以找到有关如何从 Dominic Szablewski 获得库许可的更多信息。 (在这方面我并没有真正提出任何建议,只是总结信息)。

    【讨论】:

    • 感谢您的链接,我已经找到了特定的方法,尽管我希望能够在运行时下载脚本,所以这就是为什么我最终想到了 uiwebview,因为我从你的术语中了解到不允许以任何其他方式下载运行代码,我将不得不在实践中对其进行测试,我想看看这种方法是否可以在性能方面发挥作用。
    • 嗨,我仍然不清楚这种方法是否符合苹果的条款。场景是通过uiwebview有一个JS->obj-c桥,脚本最初由uiwebview下载,然后我想保存它以供离线使用。它就像 phonegap 平台以及它如何桥接 JS-objc 以使用本机功能,但我想在运行时下载脚本然后将它们保存在本地。你认为有一个违反条款?
    • 这是一个好问题...我认为这应该不是问题,因为:“上述唯一的例外是由 Apple 内置的 WebKit 框架下载和运行的脚本和代码。” -- 实际上,您最初依赖 WebKit 下载它,然后使用 WebKit 运行它...但谁知道...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2011-10-07
    • 1970-01-01
    • 2017-09-19
    • 2010-12-22
    • 2013-06-19
    • 2011-03-13
    相关资源
    最近更新 更多