我遇到了一个问题,只有少数用户报告说他们不能通过移动网络Internet使用我的应用程序(需要Internet访问)。他们根本无法访问网络以登录应用程序。但这个应用程序在Wi-Fi连接上运行得很好。
请求显然是跨域的,服务器api被编程为接受跨域请求。
登录服务器显示,用户尝试时甚至没有收到任何呼叫。
jquery ajax调用总是在进程启动时返回fail回调。
我已经查过一般的嫌疑犯了,他们都没事。
<access origin="*" />
在我的android manifest.xml中
<uses-permission android:name="android.permission.INTERNET" />
我已经尝试让用户完全卸载应用程序,然后重新安装。没有骰子。
我被难住了。有人能给我指一个可能的解决办法吗?
使用Cordova3.1.0版和Android的最低sdk是15(4.0.1)
非常感谢。
最佳答案
我们终于搞清楚了。
这是一个DNS问题。我们的主要web应用程序是google app engine托管的应用程序,我们在其中使用通配符子域。
android应用程序也会联系同一个域(mobile.{domain}.com)下的一个子域,但它托管在单独的服务器上,不依赖于gae。在移动网络上,来自android应用程序的呼叫一直转到gae应用程序,而不是我在mobile.{domain}.com上设置的api端点,我猜这是移动互联网的某种dns传播问题。
但最关键的是,这些子域并不是新的,它们已经有几年的历史了。
为了解决这个问题,我设置了一个域的.net来指向同一个服务器,设置了一个端点,现在一切都好了。