通过Android访问localserver

时间:2016-10-09 11:43:14

标签: php android android-studio localserver

我有这段代码:

     @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手机时它就崩溃了。它为什么这样做?希望你们能帮助我解决这个问题。

1 个答案:

答案 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" />