首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Meteor android构建版本

Meteor android构建版本
EN

Stack Overflow用户
提问于 2015-08-28 21:18:09
回答 1查看 300关注 0票数 1

我有个奇怪的问题。我构建了我的Meteor应用程序并在android设备上运行-

代码语言:javascript
复制
meteor run android-device --mobile-server=<my_aws_ip>:3000

当应用程序立即部署时,它就会连接到服务器(而且我的javascripts等也能工作)。几秒钟后,页面刷新,而javascript回调都不起作用。请帮我调试这个问题。

更多信息:如果我更改客户端(而不是服务器)并部署它,在最初的几秒钟内,更改后的客户端将显示在电话上。在前几秒钟之后,将显示服务器上的版本。因此,我认为Cordova或Meteor试图从服务器上获取客户端代码,这将破坏应用程序。有办法阻止这种行为吗?

更多的数据点-

  1. 我的aws代码没有安装android和ios平台。因此,我认为没有安装cordova插件,导致JS在某个地方中断。
  2. 我能想到的最简单的解决办法是移除cordova autoupdate。这是由流星平台软件包添加的。如果我克隆流星平台,并评论出科多瓦自动触摸,应用程序不加载。

还有另外一种方法来去除自动碰触吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-29 00:58:59

这听起来像是在mobile-server地址部署了不同版本的应用程序。

本地代码在开发模式中运行。您的AWS可能处于生产模式(并且可能包含语法错误)。

当您运行应用程序时,它会看到代码是不同的,并使用热代码重新加载获取新/旧(不同)版本,因此页面刷新/闪存。

要解决这个问题,您需要在代码中找到语法错误。最好是查看亚行记录器或使用meteor run --verbose android-device ....运行

这将提供更多信息,例如Uncaught exception: cannot read .. of null错误类型错误。

很难说这是什么错误。此错误阻止代码的其余部分执行。在生产模式下,整个项目是一个JS文件。如果在文件中途出现任何类型的错误,则该文件的其余部分将不会执行。

另外,尝试在浏览器中加载<my_aws_ip>:3000,并在JS控制台中观察JS错误。

您还可以使用--production在本地运行它,以便在本地模拟生产构建环境。

启用自动访问日期,但不刷新页面:

代码语言:javascript
复制
Reload._reload = function (options) {
    console.log("Next load will load new version");
};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32279903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档