我试着按照这个问题的答案,但没有一个适合我。
我在GWT中有一个简单的helloworld应用程序,我试图在我真正的Android手机上的phonegap中运行。
所以我编译我的GWT应用程序并将war文件夹的内容放在我的phonegap空白项目的www文件夹(删除以前在www文件夹中的任何内容)中。
我通过phonegap在我的手机上运行该项目。
我在phonegap中看到的地址是:http://192.168.15.118:3000/
此应用运行的位置。
所以我在我的代码中这样做了。
PhonegapUtil.prepareService((ServiceDefTarget) service, "http://192.168.15.118:3000/hellogap/", "greet");
service.greetServer(....
" hellogap"是我的模块名称(我的项目名称是HelloGap,如果需要的话)
当我从eclipse运行rpc时一切正常。 当我在我的手机上运行rpc时,它说:
Server replies:
404 Not Found Cannot POST /hellogap/greet
如果我能得到一个暗示我做错了什么......
谢谢
答案 0 :(得分:0)
要使用Phonegap在Android应用中访问类似网络浏览器的战争,您必须知道以下事项,
1)编译后将战争部署到服务器,如Apache Tomcat等。我正在使用Apache Tomcat并在webapps文件夹中部署我的战争。
2)您的IP必须是公共IP,以便在任何可以访问该战争的地方确保您的战争和您的移动互联网在同一网络中。
3)为了从MainActivity中的phonegap项目访问战争你可以通过以下方式实现,有很多方法可以访问战争,但我更喜欢这个,
@Override
public void onCreate(Bundle savedInstanceState) {
try {
/*
* This is one way to access war
* super.onCreate(savedInstanceState);
* super.loadUrl("file:///android_asset/www/CustomAppHost.html");
*/
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("https://www.google.com");//here you can specify your war url
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);//here you can specify your war url
return false;
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
通过这种方法,您在项目中使用的所有Servlet都可以工作,我认为这应该可以帮助您..
答案 1 :(得分:0)
Divide et impera!
电话方:打电话给你知道确实有效的服务,比如yahoo weather api(https://query.yahooapis.com/v1/public/yql?q=select%20wind%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22chicago%2C%20il%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys)。
服务器(您的计算机)方:尝试使用浏览器和/或在本地运行的相同GWT应用程序调用api url。
让我们看看它是怎么回事,我们将从那里开始。这个问题有很多可能的问题,我们需要稍微缩小一点。