繁体   English   中英

将Sencha Touch应用程序从iOS迁移到Android和Windows

[英]Migrate Sencha Touch app from iOS to Android and Windows

我是Sencha Touch,Windows应用程序开发和VisualStudio环境的新手,是一名铁杆Android开发人员。 因此,请耐心地对问题进行冗长的描述,只是不想错过任何关键细节。

我收到了一个旧的基于Sencha Touch 2.1 (Cmd 3.0)的应用程序,该应用程序已在由Kepler-452b开发的ipad(iOS)上运行。 我最近通过将项目内容复制到android cordova项目(www文件夹)将应用程序移植到Android,并且在Nexus 10平板电脑上可以正常使用。 在尝试使用VisualStudio 2013将其迁移到Windows时,我开始遇到问题。

目的是利用可在Win 8 / 8.1 PC或HP Omni 10平板电脑上运行的现有代码创建Windows Store应用程序。

遵循的步骤:

  1. 创建示例sencha应用

     >sencha generate app sample ../sample 
  2. 初始化科尔多瓦

    >sencha cordova init

  3. 更新app.json以添加Windows平台

    “平台”:“窗口”

  4. 为本地包装打造

    >sencha app build native

  5. 将在\\ cordova \\ platforms \\ windows中生成的解决方案'CordovaApp.sln'导入到VS2013

  6. 在VS中运行项目CordovaApp.Windows80,由于Windows CSP,它会抛出“无法添加动态内容”异常

  7. 将MSApp.execUnsafeLocalFunction()的调用包装在index.html中缩小的microloader脚本中,然后再次运行。 这将成功启动示例sencha touch应用程序作为商店应用程序(“主页”和“入门”选项卡的选项卡栏中的图标替换为“ H”和“ R”)。 IE和chrome浏览器均使用图标精美呈现应用程序

  8. 在Windows资源管理器中,删除\\ cordova \\ platforms \\ windows \\ www文件夹中除cordova.js和cordova_plugins.js之外的内容

  9. 将我的旧sencha项目的内容复制到www文件夹,在VS中构建并启动该应用程序。 再次“无法添加动态内容”!

  10. 在/www/touch/microloader/development.js内部,更新“函数write(content)”以使用MSApp.execUnsafeLocalFunction()包装document.write并运行; 弹出另一个异常:“此时尚不存在document.body”-谷歌建议这可能是由于旧框架版本引起的

  11. 用我的sencha工作区中的新2.4.0“ touch”文件夹替换项目中的旧2.1“ touch”文件夹,然后再次运行

现在,控制台中没有错误,但是该应用程序仅在cordova初始屏幕之后显示白色屏幕。 如果我用示例sencha应用程序中的内容替换Main.js的内容,屏幕仍然是白色的! 通过添加“初始化”事件侦听器,我确认该视图正在加载

我正在使用Sencha Cmd 6.0.0和touch-2.4.0

我已经为此坚持了一个多星期,但无济于事。 这里查看了stackoverflow,但说明是针对Ext JS而非Sencha Touch的。 不知道OP如何解决问题。

我不确定这是否是将旧的sencha touch应用迁移到Windows应用商店的正确方法。

任何帮助将非常感激。

首先,我将恢复您的解决方法,只需将Windows Store动态内容Shim库添加到您的项目中。 它专门用于提高Web框架与Windows应用程序的兼容性并解决您遇到的问题。 它只会在Windows上激活,因此如果您在Android或iOS上运行,它不会增加开销。 我从这里开始,因为它可能会解决大多数(如果不是全部)问题,很可能是上述更新之一导致了该问题,或者还有一个更新没有引起错误。

您还应该验证您正在使用的所有支持Windows的基础Cordova插件,因为这可能会导致JavaScript异常,并且在Sencha正常工作的情况下,渲染之前会发生JavaScript异常。

最后,请注意,Cordova插件代码与平台无关,因此您不能安全地将Android项目的内容复制到另一个平台。 (Android到iOS,iOS到Windows,或其他。)听起来您应该采取的步骤应该起作用,但是请注意,您无法将插件代码本身从一种本机项目类型复制到另一种本机项目类型。 这些工具大多数使用的Cordova命令行界面将根据您正在构建的平台,将本机和Web插件正确的代码自动添加到您的项目中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM