【问题标题】:iOS: Download script and execute it?iOS:下载脚本并执行?
【发布时间】:2011-08-07 15:15:02
【问题描述】:

我们有一个应用程序,它基本上可以解析一些网页。问题是网页的结构有时会发生变化,所以我们需要发布更新(当然要等待苹果的批准)。我们希望能够在我们的服务器上拥有某种“脚本逻辑”,可以在需要时发送到应用程序。 JavaScript 代码是可能的,但我不希望 UIWebView 仅用于解析某些字符串。有什么替代方案吗?

谢谢

【问题讨论】:

标签: iphone ios ipad


【解决方案1】:

没有。开发者程序许可协议明确禁止运行不是应用程序嵌入式组件的可执行文件或脚本:

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

【讨论】:

  • 正确,不下载可执行或解释代码。也就是说,下载描述网页布局方式的配置文件——例如应将具有“mainttl”类的 div 插入到对象的“主标题”属性中的本地数据存储中 - 不一定被视为解释代码。如果您可以将逻辑保留在运输应用程序中(是的,这对于灰色区域肯定是开放的)并且在下载之外您不会违反该部分。
  • 下载 AES 加密的 JS 有效负载与使用简化的描述格式不一样吗?
  • 对不起,我不同意这个。现有的应用程序,如微信 (itunes.apple.com/us/app/wechat/id414478124?mt=8) 和拼图龙,下载插件并在应用程序中添加新功能。他们如何实现它?
  • @ShivanRaptor:通过将这些功能的所有代码驻留在主应用程序中,并且仅在购买适当的 IAP 时激活它。
  • 在上述应用中,不涉及IAP。他们从他们的服务器下载超过 10MB 的数据,并且弹出了新功能……好吧,我猜那是图形。虽然无法证明
【解决方案2】:

如果您主要是在寻找一种解析字符串的方法,一种可能性是使用正则表达式来完成这项工作,从而在您可以下载的文本或 xml 文件中为这些正则表达式提供定义。这不是一个完整的脚本解决方案,就像下载代码并执行它一样,但它应该同样有效。我想这也应该完全符合 Apple 条款。

有几个 iOS 框架提供正则表达式支持:RegExKitAGRegEx,在 iOS 4 中还有 NSRegularExpression

【讨论】:

  • 我认为这是简单解析字符串的最佳解决方案。
【解决方案3】:

您可以嵌入像 lua 这样的脚本语言。请参阅 herehere。我不太了解它,但它已在许多脚本应用程序中使用,就像您的需求一样。

我不是 100% 如何集成它或者脚本是否可以热加载,但它可能会起作用。

注意:

我不确定 Apple 是否会让你下载和运行任意脚本,但值得一试。

【讨论】:

  • Lua脚本在各种iOS游戏中肯定是本地解释的;但是,这些脚本在安装时必须已经存在于应用程序中,它们随后不能被下载和解释。
  • @tjameson:谢谢,我看过 lua 一点,它与 C 语法有很大不同......所以有更多“c like”选项吗?
  • 好点。我在其他地方读到过,它与 Apple 的条款 100% 一致。不过,值得一试。
  • @Alex1987- 不,JavaScript 是最接近的。我会尽量避免违反 Apple 的条款。使您的代码尽可能健壮,如果您需要额外的功能,请在允许运行任意代码的服务器端执行(Apple 不能让他们肮脏的小手指在那里)。
  • @tjameson:是的,JS 的问题是我需要为那些非常昂贵的东西保留一个 UIWebView。我想知道是否有一种方法可以在没有 UIWebView 的情况下执行简单的 JS 代码
猜你喜欢
  • 2011-07-11
  • 2018-01-31
  • 1970-01-01
  • 2015-10-05
  • 2010-12-30
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
相关资源
最近更新 更多