我们公司的应用程序主要是嵌入在android / iPhone原生应用程序中的webview。在某些区域,dns查找始终失败,这导致打开我们的webview页面时出错。
我们找到了一种名为HttpDNS的技术,它可以解决纯本机应用程序的dns查找问题,因为它可以通过ip(从HttpDNS获取)而不是域发送http请求,并手动设置http头的域。但是在webview中,我们不能这样做。
那么有没有办法解决webview中的DNS问题?谢谢(我们发现我们可以在app中设置一个可以解决dns查找问题的代理,但这种方法并不那么新颖。)。
答案 0 :(得分:1)
你可以:
当然,这两种方法都不是完美的,因为只有当用户在Web视图中加载替换当前页面的页面时才会有效(与随机XMLHTTPRequest调用相反)。
然后,总有:
虽然这确实具有即使对于XHR也有效的优势,但我倾向于建议针对公开发布的应用程序采用这种方法,原因有三:
当然,您可以通过添加libcurl并使用它来执行实际请求来避免第一个问题,但随后您将陷入严重可怕的兼容性领域。 : - )
您可能最好不要试图找出DNS查找失败的原因。是否被滥用的ISP或政府在本地阻止?您是否可以将VPN技术添加到您的应用中,以便您的URL(和DNS查找)请求通过隧道路由?