Android 我如何让Sencha Touch和Cordova一起工作?
我有一个Sencha Touch应用程序,现在我想用Cordova为Android、iOS和浏览器打包 我现在正试着用大约一天的时间来让这两种方法一起工作。我可以在我的设备上安装一个版本,但每当我尝试用新代码更新它时,就会出现一些问题。“某些东西不起作用”是指以下情况之一:设备永远显示“3个死亡点”(蓝色背景上闪烁3个白点),或显示浏览器样式的警报,说明app.js已更新,是否应重新加载(使用取消/重新加载按钮),或显示sencha样式的警报,说明应用程序已完成升级,是否要重新加载 我认为问题的根源在于Sencha(Cmd?)的工作方式,或者我无法理解我做错了什么。我似乎误解了“生产”、“包装”和“本地”之间的区别。我可以理解为什么“空中传送”更新是好的,但由于这是一个本地应用程序,我不需要任何这些。我不想/不需要在输出目录中有“存档”文件夹,也不需要“增量”文件夹。为什么“归档”文件夹中有我所有CSS的额外副本?扯头发 所以,我想我的基本问题是:如何让Sencha Touch只构建一个完整的应用程序,而不进行空中更新、增量、归档、发布时的混乱提示或3点死亡 在等待讨论开始的时候,我会继续尝试,并在这里报告我可能发现的任何东西 最后说明:Android 我如何让Sencha Touch和Cordova一起工作?,android,cordova,senchatouch-2.4,Android,Cordova,Senchatouch 2.4,我有一个Sencha Touch应用程序,现在我想用Cordova为Android、iOS和浏览器打包 我现在正试着用大约一天的时间来让这两种方法一起工作。我可以在我的设备上安装一个版本,但每当我尝试用新代码更新它时,就会出现一些问题。“某些东西不起作用”是指以下情况之一:设备永远显示“3个死亡点”(蓝色背景上闪烁3个白点),或显示浏览器样式的警报,说明app.js已更新,是否应重新加载(使用取消/重新加载按钮),或显示sencha样式的警报,说明应用程序已完成升级,是否要重新加载 我认为问题的
Cordova-v=5.3.3,Sencha Touch(zip)=2.4.2,Sencha Cmd=5.1.3.61,Android API level=22,Mac OS X 10.10.5,我通常使用的工作流程是有一个构建脚本(或者你可以使用一个)用Sencha Cmd打包Sencha Touch JS应用程序代码,并将结果复制到Cordova项目的www文件夹中,在运行cordova构建之前
我建议您使用自己的Cordova,而不是与Sencha工具绑定的Cordova,这样更容易跟上快速发展的Cordova项目。处理这一问题的最佳方法是让Sencha CMD自己做。这可以通过其他方式完成,但我建议在了解Sencha Touch和Cordova的基础知识之后 基本上,您有一个可以在CMD中创建的ST项目
sencha -sdk ~/path/to/touch-0.0.0 generate app MyApp ~/path/to/create/my-app
然后你做一些开发工作,你想在Cordova中做一个构建
sencha cordova init com.mydomain.myapp MyApp
Cordova目录已添加到项目中,并包含
cordova
|_ hooks/
|_ platforms/
|_ plugins/
|_ www/
|_ config.xml
所以,在前进之前先解释一下——当你跑步的时候
sencha app build production
sencha app build native
你会得到一个缩小版的应用程序(编译成my app/build/production/MyApp
)可以部署到web服务器上,以便与移动网站/web应用程序一样工作
当你跑的时候
sencha app build production
sencha app build native
您可以获得几乎相同的缩小代码库,但它被编译为my-app/cordova/www/
Sencha的构建通过将代码放入www
文件夹来完成,它会触发cordova构建。然后将www
文件夹的内容复制到每个platform/[os]/www
目录
如果您针对cordova版本对项目进行了任何更改,您可能希望在cordova/www
文件夹中进行更改(请小心,可能会删除更改)
Sencha CMD的本机构建确实对index.html
做了一些自定义操作,以便更好地与Sencha合作,但很多情况对Cordova来说都很正常。如果您将CD放入cordova
中,实际上可以运行正常的cordova[options]
命令。区别在于,对Sencha项目的任何更改都不会复制到Cordova项目中
#1
我建议使用Sencha CMD路线,因为它将使生活更轻松
#2
您不需要使用第三方工具来处理JS,因为它是通过构建中的丑化来完成的
#3
我可能错了,但我的第一个猜测是,在一个独立的Cordova项目中,除非运行,否则平台代码不会更新
cordova build
我认为这可能涵盖你的问题,但如果不是,我可以尝试澄清任何事情
编辑在我的示例中,我使用的是iOS,但将其与android交换。习惯:/谢谢你的详细评论!我会尝试一下,然后再报告。特别针对您关于不使用jscrambler的建议:恐怕不是一个选项。Sencha minification不像jscrambler那样保护代码,它们进行模糊处理,这正是我所需要的(在我的领域有很多竞争,所以我需要绝对最好的)。再次感谢。