我有一个Sencha Touch应用程序,我现在想用Cordova打包它,适用于Android,iOS和浏览器。
我现在正努力让这两个人一起工作。我可以在我的设备上安装一个版本,但是每当我尝试用新代码更新它时,某些东西都无法正常工作。 "某些东西不起作用"意味着以下之一:设备显示死亡的" 3点" (永远在蓝色背景上闪烁3个白点)或浏览器式警报说app.js已更新,我应该重新加载(使用取消/重新加载按钮)还是一个sencha风格的警报说应用程序完成升级并且我想重新加载
我认为问题的根源是Sencha(Cmd?)的工作方式或者我无法理解我做错的方式。我似乎在误解"生产","包"和#34;本地人"是。我能理解为什么"无线电"更新可能是好的,但由于这是一个本地应用程序,我不需要任何这些。我不想/需要拥有"存档"输出目录中的文件夹,也不是"增量"夹。为什么"存档"文件夹有我所有CSS的额外副本? 撕掉头发
所以,我想我的基本问题是:如何让Sencha Touch建立一个完整的应用程序,没有无线更新,增量,档案,启动时的混乱提示或3点死亡?
在等待讨论开始的同时,我会继续尝试,并在此处报告我可能找到的任何内容。
最后的说明:
感谢您的关注,我希望这个主题可以帮助其他任何悲惨的程序员:)
版本: Cordova -v = 5.3.3,Sencha Touch(zip)= 2.4.2,Sencha Cmd = 5.1.3.61,Android API等级= 22,Mac OS X 10.10.5
答案 0 :(得分:1)
处理此问题的最佳方法是让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
你得到的应用程序的缩小版本(编译为my-app/build/production/MyApp
)可以部署到一个打算用作移动网站/网络应用程序的网络服务器。
运行时
sencha app build native
你得到几乎相同的缩小代码库,但它被编译为my-app/cordova/www/
。
Sencha的构建完成,将代码放入www
文件夹,触发了cordova构建。然后将www
文件夹的内容复制到每个platform/[os]/www
目录。
如果您对特定于cordova构建的项目进行了任何更改,您可能希望在cordova/www
文件夹中执行此操作(小心,因为您可能会删除更改) 的
Sencha CMD的Native build确实为index.html
做了一些自定义的事情,以便更好地与Sencha合作,但是很多它对Cordova来说是很正常的。如果您将CD刻录到cordova
,您实际上可以运行正常的cordova [options]
命令。不同之处在于,对Sencha项目的任何更改都不会复制到Cordova项目中。
我建议使用Sencha CMD路线,因为它会让生活更轻松。
您不应该使用第三方工具对JS执行任何操作,因为它是通过构建中的uglification完成的。
我可能错了,但我的第一个猜测是在一个独立的Cordova项目中平台代码不会更新,除非你运行
cordova build
我认为这可能会涵盖您的问题,但如果不是,我可以尝试澄清任何事情。
编辑我在我的示例中使用iOS但是与android交换。习惯:/
答案 1 :(得分:0)
我通常使用的工作流程是使用构建脚本(或者您可以使用Cordova build hook)将Sencha Touch JS应用程序代码与Sencha cmd打包并将其结果复制到Cordova项目的www文件夹中,在运行cordova build之前。
我建议您使用自己的Cordova,而不是使用与Sencha工具相关的Cordova,这样可以更快地了解快速移动的Cordova项目。