在Android应用程序中将域名自定义映射到IP
问题描述:
我有一个在android webview中呈现的web应用程序。当用户点击一个按钮时,URL http://www.mywebapp.com/被渲染。在Android应用程序中将域名自定义映射到IP
是否有可能将此域名映射到本地网络中的IP,仅用于我的Android应用?
喜欢的东西,
192.168.33.10 mywebapp.com
由于我编译我自己的Android应用程序,我希望,有可能是一些基于代码的解决了这个问题。
拒绝途径:
生根Android设备上编辑其
hosts
文件。我试图用我办公室里的共享测试设备来做到这一点。在网络上建立一个自定义的DNS服务器,并让android手机指向它 - 这是一个全局变化 - 无论使用什么解决方案,它应该只影响android应用程序的行为,而不是其他任何东西。另外,我对办公室wifi没有任何控制/权限。
答
我认为一个自定义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
}
}