Android 应用程序中域名到 IP 的自定义映射

chr*_*kar 5 dns android webview

我有一个在 android webview 中呈现的 web 应用程序。当用户单击按钮时,URL http://www.mywebapp.com/将呈现

是否可以将此域映射到我的本地网络中的 IP,仅适用于我的 Android 应用程序?

就像是,

192.168.33.10 mywebapp.com

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

被拒绝的方法:

  1. 生根 Android 设备以编辑其hosts文件。我正在尝试使用办公室中的共享测试设备来完成此操作。

  2. 在网络上设置自定义 DNS 服务器并让 Android 手机指向它 - 这是一个全局更改 - 无论使用什么解决方案,它都应该只影响 Android 应用程序的行为,而不会影响其他任何内容。另外,我对办公室无线网络没有任何控制/权限。

nas*_*sch 3

我认为习惯WebViewClient可以解决问题。

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

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
    }
}
Run Code Online (Sandbox Code Playgroud)

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