基于Meteor和 Cordova的 Android应用无法连接到服务器
我有一个Meteor应用(meteor版本3.4)。它按预期工作,没有任何问题。
经过一阵摆弄,我按照这里的文档把它跑成了一个Android应用
https://docs.meteor.com/about/cordova.html#android
在开发环境下运行它(使用Android Studio模拟器)时,工作正常,毫无问题。
meteor run android
但当我尝试使用生产环境时,它无法连接到服务器,因此我无法发出任何API调用(在chrome://inspect查看时似乎被忽略)。
meteor run android --mobile-server https://myapp.co.nz
或者
meteor run android --mobile-server <server ip>:3000
我已经把我能想到的一切都尝试过,并在网上搜寻答案,但似乎还缺少某些东西,导致生产环境下服务器无法与手机通信。
---- 更新 ----
出现错误时,它们似乎是503:服务器功能正常但不可访问。所有Meteor.call请求都被忽略,因此我没有获得任何信息。我检查了服务器,似乎没有任何限制流量的地方,线上版本也工作正常。
除了在移动版本上无法进行API调用之外,其他一切都正常。感觉像是缺少一个让移动应用与服务器通信的拼图。
---- 进一步更新 ----
在一个空项目上搞定了。看起来我做了一些移动应用不太喜欢但没有给出有用错误信息的事情。现在准备把所有东西一个个重新加回去,直到它坏掉。如果找到了问题所在,我会在这里发答案。
---- 最终更新 ----
我重建了项目,结果就能工作了。仍然不清楚它到底在抱怨什么,但如果要我猜,可能是以下两件事情之一:
- 出现了一个CORS问题,重新整理后自行解决了
- 我移除了一个不再需要的service worker,它与手机相关的东西发生冲突
解决方案
我重新构建了项目,结果就直接工作了。仍然不清楚它到底在抱怨什么,但如果要我猜,可能是以下两件事情之一
- 出现了一个CORS问题,重新做这件事时自行解决了
- 我移除了一个不再需要的service worker,它与手机相关的东西发生冲突