如何防止meteor.local的负载(使用phonegap构建ios应用程序时)
Posted
技术标签:
【中文标题】如何防止meteor.local的负载(使用phonegap构建ios应用程序时)【英文标题】:How to prevent load of meteor.local (when building ios app with phonegap) 【发布时间】:2015-05-11 00:09:52 【问题描述】:这是我向here 提出的一个问题的延伸,该问题没有得到答复。我正在尝试在我自己的远程服务器上托管的 iPad 上使用 Meteor 应用程序。问题是当我运行以下命令时,应用程序构建成功:
sudo meteor run ios-device --mobile-server=XXXX:XXXX
当我单击 Xcode 中的构建按钮以将应用程序部署到我的设备时,问题就开始了。似乎一切正常,甚至从我的远程服务器加载数据。但几秒钟后,它会恢复到本地数据库/构建。当我检查 Xcode 日志时,它显示“已完成 http://meteor.local/ 的加载”,因此它似乎正在用新的本地数据覆盖远程数据。我不确定我是否启用了导致 Xcode 加载本地数据库的某些功能,或者我是否必须关闭某些功能以防止其加载。
更新:
我已经使用 Jey DWork 的建议解决了这个问题,以在 Meteor 服务器启动中应用缺少的环境变量。
我添加的是:
Meteor.absoluteUrl.defaultOptions.rootUrl
process.env.ROOT_URL
process.env.MOBILE_ROOT_URL
process.env.MOBILE_DDP_URL
如果不设置这些,ROOT_URL 似乎在初始加载后被覆盖。由于这些环境变量似乎没有记录在案,我仍然会搜索并查看是否有针对此问题的不同解决方案(因为该应用程序必须多次重新加载才能使用它似乎很奇怪) .不过,就目前而言,这是一个临时解决方案。
【问题讨论】:
另外,我没有使用 Xcode 并且正在为 android 构建您的问题(几秒钟后使用本地数据而不是远程数据)听起来我目前遇到的问题也非常熟悉(@ 987654323@)。你能用Meteor.startup(function() console.log(__meteor_runtime_config__.ROOT_URL); )
之类的东西检查你的ROOT_URL是否发生了变化吗?如果它改变了之前和之后的值,在这种情况下,问题可能根本与 Xcode 无关。
设置 ROOT_URL 变量不会做任何改变。它似乎获得了正确的负载信息,但随后在调用资产的过程中调用了 meteor.local。
我刚刚发现有更多变量存储根 URL 并且当 Cordova 客户端正在连接时 Meteor 服务器正在使用 process.env.MOBILE_DDP_URL
和 process.env.MOBILE_ROOT_URL
并且还将这些变量发布到客户端和在那里触发重新连接。在 Meteor.startup()
功能服务器端将这些变量设置为我的真实 URL 解决了我在 ***.com/q/28889748/2543628 的问题。也许你也应该尝试一下。至少它不应该受到伤害......
这是一个很棒的发现,不知道为什么它没有记录在案。不幸的是,它似乎并没有解决我的问题。你能发布你用来启动移动服务器的命令吗?我注意到的一件事是,如果我在 linux 中启动我的应用程序,它会显示“应用程序运行在:自定义 IP 地址”,但是当我在 iOS 上启动它(我试图让 iPad 版本正常工作)时,它会显示“应用程序在本地主机上运行:3000")。该应用程序完全相同,所以我不确定差异来自哪里......
我的过程是这样的: 1)用ROOT_URL="http://10.0.2.10:3000" meteor --port 3000
启动服务器; 2) 现在我在Meteor.startup()
中将Meteor.absoluteUrl.defaultOptions.rootUrl
、process.env.ROOT_URL
、process.env.MOBILE_ROOT_URL
和process.env.MOBILE_DDP_URL
设置为我的ROOT_URL
手动服务器端 3) 最后我运行meteor run android-device --mobile-server http://10.0.2.10:3000/
,请注意我在与服务器同步的本地 PC,因为我的手机没有与服务器的 USB 连接。这对我有用...
【参考方案1】:
看看这篇文章:
您的智能手机应用必须使用 --server=http://IP:PORT 参数构建 和 您的服务器应用必须使用 --mobile-server http://IP:PORT 参数启动我已经理解了我的问题,也许你的问题是一样的,所有的解释都在这里:***.com/questions/34658956/
【讨论】:
以上是关于如何防止meteor.local的负载(使用phonegap构建ios应用程序时)的主要内容,如果未能解决你的问题,请参考以下文章