gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 16:42:40 25 4
gpt4 key购买 nike

我是一名铁杆 Android 开发人员,刚接触 Sencha Touch、Windows 应用程序开发和 VisualStudio 环境。所以请容忍问题的冗长描述,只是不想错过任何关键细节。

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

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

遵循的步骤:

  1. 创建示例 Sencha 应用

    >sencha generate app sample ../sample
  2. 初始化 Cordova

    >sencha cordova 初始化

  3. 更新 app.json 添加 windows 平台

    “平台”:“ window ”

  4. 为原生打包构建

    >sencha 应用构建原生

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

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

  7. 用 MSApp.execUnsafeLocalFunction() 将对“document.write”的调用包装在 index.html 内的缩小微加载器脚本中,然后再次运行。这成功地将示例 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 中,更新“function write(content)”以使用 MSApp.execUnsafeLocalFunction() 包装 document.write 并运行;弹出另一个异常:“此时 document.body 不存在”- 谷歌建议这可能是由于旧的框架版本

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

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

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

我已经坚持了一个多星期了,现在无济于事。在计算器中查看 here ,但说明是针对 Ext JS 而不是 Sencha Touch。不知道 OP 如何解决这些问题。

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

如有任何帮助,我们将不胜感激。

最佳答案

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

您还应该验证您正在使用的所有底层 Cordova 插件都支持 Windows,因为考虑到 Sencha 的工作方式,这可能会在渲染发生之前导致 JavaScript 异常。

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

关于javascript - 将 Sencha Touch 应用程序从 iOS 迁移到 Android 和 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31703661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com