我有这段代码:
@Override
public void onCreate(Bundle savedInstanceState) {
try {
super.onCreate(savedInstanceState);
InetAddress ip;
mWebview = new WebView(this);
mWebview.getSettings().setJavaScriptEnabled(true);
final Activity activity = this;
String ipv4add;
mWebview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
}
});
ip = InetAddress.getLocalHost();
ipv4add = ip.getHostAddress().toString();
System.out.println(ipv4add);
mWebview .loadUrl(ipv4add+"/Lab4/Task1/index.php");
mWebview.getSettings().setLoadsImagesAutomatically(true);
mWebview.getSettings().setJavaScriptEnabled(true);
mWebview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
setContentView(mWebview );
} catch (UnknownHostException e) {
e.printStackTrace();
}
所以它首先要做的是:它应该获得手机应该连接的服务器IP,然后它将被插入到URL中,以便手机可以连接到本地服务器并访问我的php文件。但是,当我将它发送到我的Android手机时它就崩溃了。它为什么这样做?希望你们能帮助我解决这个问题。
答案 0 :(得分:0)
您不必动态请求服务器的IP。或者你呢?您可以做的是获取服务器的静态IP地址(通过检查服务器的IP配置)并更改为
mWebview .loadUrl("http://your.ip.address.here/Lab4/Task1/index.php");
并删除您的
ip = InetAddress.getLocalHost();
ipv4add = ip.getHostAddress().toString();
准备好部署后,192.168.1.x
必须替换为您的实时域名,例如
mWebview .loadUrl("http://www.yourdomain.com/Lab4/Task1/index.php");
另外,请勿在清单中忘记这一点:
<uses-permission android:name="android.permission.INTERNET" />