使用Appcelerator将基于web2py的web-app转换为本机应用程序,这很容易吗?可能?

时间:2011-09-08 19:17:13

标签: javascript python titanium appcelerator web2py

这是我的问题:

客户希望将我当前的Web应用程序用作桌面,可能是可执行文件,但客户端部分没有浏览器。

我查看了以下3个内容:

  • Qooxdoo - 需要浏览器
  • Adob​​e Air - 需要插件和运行时
  • Appcelerator - 最有趣的是,构建到Native Client

以下是主要问题:

客户方: 我在appcelerator上读到的是它用html和javascript编写的东西 到原生可执行文件,所以我已编写的内容(HTML + Jquery + Jquery UI + CSS)可以构建到Native Windows / Linux / IOS可执行文件中而无需更改当前代码吗?

服务器端:

没问题,因为它返回html和json并决定继续在服务器上运行。但想知道离线内容是如何工作的。

1 个答案:

答案 0 :(得分:0)

我不确定这实际上是否有效。根据我的理解,钛appcelerator主要为您提供在iOS和Android平台上创建应用程序的框架。我确实看到了有关桌面应用程序的一些内容,但是当你的后端代码是python(以及web2py引导)时,没有关于从源自动创建的应用程序。

我认为可能无法放弃您的web2py应用并获得最终产品。首先,Appcelerator如何知道给定的URL对应于给定的控制器和函数?它将如何对数据库中的对象执行搜索?您是否希望它读取DAL(...)连接字符串并且只是连接?

如果您不进行任何服务器端处理,并且不使用除JSON之外的任何数据源,那么这可能会起作用。也许。但我非常怀疑它会是自动的,甚至是那么简单。

在我看来,您必须点击每个页面并将页面保存为html到光盘,然后将输出的HTML / CSS / JS标记放入Titanium。但这意味着,如果您正在处理表单或搜索,或者在控制器中执行任何有趣的操作,那么钛应用程序将无法处理服务器端后端的任何内容。

话虽如此,钛确实可以使用PHP代码,但并不完美,而且我在使用框架而不是原始php时会看到问题。

http://www.flickr.com/photos/funkatron/4011561849/

  

无论如何,它都没有那么好用。 Titanium Desktop仍然支持PHP,但开发一个像CI这样的服务器端框架的应用程序基本上无法运行。

文档中还有一些关于处理python代码的内容,但我看到的是你可以使用脚本标记将python放在HTML的“client”端:

<script type='text/python'>
   # ... python code ? 
</script>

(参考:http://developer.appcelerator.com/doc/desktop/python

但这对web2py应用无济于事。

简而言之 - 我建议您下载应用程序并创建一个hello world项目。然后按照有关将应用程序迁移或转换为Titanium的教程进行操作。您可能不得不重做很多事情,而且我不确定如何获得web2py所需的执行环境,因此您可能需要重新构建一些基于web2py的基本GLUON代码。

抱歉:(

但是,您可以找到一种方法来创建一个Java应用程序,其中包括(a)rocket webserver,(b)python 2.5或更高版本的解释器(c)web2py框架,(d)web2py应用程序和包的副本这样就可以在java应用程序中运行(可以在任何平台上运行),并向最终用户显示HTML视图。然后,您可以将其维护为web2py应用程序,只需将应用程序复制到您的Java包中即可。我不确定最后是否更容易,但看起来你要么必须移植到Titanium或Wrap with Java(或其他语言适合平台无关的语言)。