2016-09-27 68 views
2

我有一个在android webview中呈现的web应用程序。当用户点击一个按钮时,URL http://www.mywebapp.com/被渲染。在Android应用程序中将域名自定义映射到IP

是否有可能将此域名映射到本地网络中的IP,仅用于我的Android应用?

喜欢的东西,

192.168.33.10 mywebapp.com

由于我编译我自己的Android应用程序,我希望,有可能是一些基于代码的解决了这个问题。

拒绝途径:

  1. 生根Android设备上编辑其hosts文件。我试图用我办公室里的共享测试设备来做到这一点。

  2. 在网络上建立一个自定义的DNS服务器,并让android手机指向它 - 这是一个全局变化 - 无论使用什么解决方案,它应该只影响android应用程序的行为,而不是其他任何东西。另外,我对办公室wifi没有任何控制/权限。

回答

0

我认为一个自定义WebViewClient会做的伎俩。

WebView myWebView = (WebView) findViewById(R.id.webview); 
myWebView.setWebViewClient(new WebViewClient()); 

private class MyWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (Uri.parse(url).getHost().equals("www.example.com")) { 
      view.loadUrl(myIp); 
     } 
     // Else the WebView handles it as normal 
     return false; // Indicates the WebView is handling the loading 
    } 
} 

https://developer.android.com/guide/webapps/webview.html