如何使用卡在加载屏幕上的铁路由器调试流星/科尔多瓦应用程序?
Posted
技术标签:
【中文标题】如何使用卡在加载屏幕上的铁路由器调试流星/科尔多瓦应用程序?【英文标题】:how to debug a meteor / cordova app using iron-router stuck at loading screen? 【发布时间】:2015-01-09 21:56:12 【问题描述】:我有一个流星应用程序 (BrewsOnTap),在部署为网站时运行良好,但在通过 cordova 在 android 设备上进行测试时,它会永远卡在加载屏幕上。
我没有看到任何相关的控制台错误或警告。如果我转到我为应用程序提供服务的 IP,它甚至可以正常显示。该应用程序正在使用 Iron-router 和 waitOn 来显示加载模板,直到加载初始数据......但显然这没有发生。
关于问题可能是什么或调试它的后续步骤的建议?
【问题讨论】:
【参考方案1】:这看起来很像连接问题。在控制台中尝试的第一件事:
Router.current().ready()
如果这没有返回false
,那么Tracker 或Iron-Router 会发生一些非常有趣的事情,因为它(反应性地)让主等待列表准备就绪,所以如果它返回true
,那么就会有阻止页面呈现的其他因素。
找出等待列表中哪些项目不是ready
的最佳方法是检查您的路由器代码,将订阅句柄提取到全局对象中,然后传递对@987654327 的引用@回调。
例如,而不是:
waitOn: function()
return [Meteor.subscribe('someThings'), Meteor.subscribe('someOtherThings')];
改为这样做:
Subs = ;
waitOn: function()
Subs.someThings = Meteor.subscribe('someThings');
Subs.someOtherThings = Meteor.subscribe('someOtherThings');
return [Subs.someThings, Subs.someOtherThings];
这样,您可以从控制台对每个订阅运行Subs.someThings.ready()
,以找出阻止您的页面呈现的原因。希望这是一个开始。
但是,虽然我不完全理解您发布的错误消息,但它“加载资源失败”这一事实强烈表明存在连接问题,这将阻止订阅数据通过 DDP 到达您的客户端从而防止订阅返回ready
。我会查看“网络”选项卡,看看那里发生了什么(或没有做什么)。
很抱歉这不是一个解决方案,但希望这是一个开始。如果是连接,请检查here 中的所有内容 - 即已启用开发人员工具、允许 USB 调试、Android 设备连接到同一个 wifi、IP 正确...
更新: 再想一想,该应用程序是通过USB调试安装的,因此您可以运行它的事实表明那里没有问题。但是,我假设数据是通过本地网络传递的,这就是问题所在,所以我认为这一定是两个设备没有连接到同一个 wifi,否则提供的 IP 不正确。
【讨论】:
这不是一个解决方案,但它绝对是问题的答案。谢谢一百万! 感谢您的帮助,我最终弄明白了……您对设备未连接到同一个 WiFi 的提示将我带到了那里……您的回答对于我的问题仍然是正确的。 ..但是对于任何坚持这一点的人,特别是如果你在虚拟机中运行流星......请在此处查看我的答案:***.com/questions/26918902/…以上是关于如何使用卡在加载屏幕上的铁路由器调试流星/科尔多瓦应用程序?的主要内容,如果未能解决你的问题,请参考以下文章