Android 我如何让Sencha Touch和Cordova一起工作?

Android 我如何让Sencha Touch和Cordova一起工作?,android,cordova,senchatouch-2.4,Android,Cordova,Senchatouch 2.4,我有一个Sencha Touch应用程序,现在我想用Cordova为Android、iOS和浏览器打包 我现在正试着用大约一天的时间来让这两种方法一起工作。我可以在我的设备上安装一个版本,但每当我尝试用新代码更新它时,就会出现一些问题。“某些东西不起作用”是指以下情况之一:设备永远显示“3个死亡点”(蓝色背景上闪烁3个白点),或显示浏览器样式的警报,说明app.js已更新,是否应重新加载(使用取消/重新加载按钮),或显示sencha样式的警报,说明应用程序已完成升级,是否要重新加载 我认为问题的

我有一个Sencha Touch应用程序,现在我想用Cordova为Android、iOS和浏览器打包

我现在正试着用大约一天的时间来让这两种方法一起工作。我可以在我的设备上安装一个版本,但每当我尝试用新代码更新它时,就会出现一些问题。“某些东西不起作用”是指以下情况之一:设备永远显示“3个死亡点”(蓝色背景上闪烁3个白点),或显示浏览器样式的警报,说明app.js已更新,是否应重新加载(使用取消/重新加载按钮),或显示sencha样式的警报,说明应用程序已完成升级,是否要重新加载

我认为问题的根源在于Sencha(Cmd?)的工作方式,或者我无法理解我做错了什么。我似乎误解了“生产”、“包装”和“本地”之间的区别。我可以理解为什么“空中传送”更新是好的,但由于这是一个本地应用程序,我不需要任何这些。我不想/不需要在输出目录中有“存档”文件夹,也不需要“增量”文件夹。为什么“归档”文件夹中有我所有CSS的额外副本?扯头发

所以,我想我的基本问题是:如何让Sencha Touch只构建一个完整的应用程序,而不进行空中更新、增量、归档、发布时的混乱提示或3点死亡

在等待讨论开始的时候,我会继续尝试,并在这里报告我可能发现的任何东西

最后说明:

  • 我使用的是我自己的cordova,而不是Sencha的“Sencha cordova”命令。我已经够困惑的了,但也许我需要尝试一下
  • 我想要一个包含一个大Js文件的“普通”构建,而不包含delta或归档,部分原因是我想在编译后将其发送到模糊处理服务(jscrambler)。不知道这是否重要
  • 这可能是无关的,但当我在android设备上升级我的应用程序的现有安装时,我会得到我的Javascript的旧版本(即使android应用程序本身已经更新,我可以通过版本号来判断)。我在某个地方读到,在编译之前,我应该从我的cordova项目中删除并添加android平台。。。为什么?
  • 感谢您的关注,我希望这个帖子能帮助其他可怜的程序员:)

    版本:
    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那样保护代码,它们进行模糊处理,这正是我所需要的(在我的领域有很多竞争,所以我需要绝对最好的)。再次感谢。