Android WebView无法打开Tokopedia网站,提示Blocked WebView如何解决?
Android WebView访问Tokopedia显示“Blocked WebView”的解决办法
以下是几个可行的解决方向,按优先级尝试:
修改User-Agent模拟移动浏览器
很多网站会通过识别WebView默认的User-Agent来拦截访问,你可以将WebView的UA替换为Chrome移动端的格式:val chromeUA = "Mozilla/5.0 (Linux; Android 10; SM-G973F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36" webView.settings.userAgentString = chromeUA补充WebSettings必要配置
在你已有的设置基础上,添加以下配置以满足网站的运行要求:webView.settings.allowFileAccess = true webView.settings.allowContentAccess = true webView.settings.loadsImagesAutomatically = true webView.settings.javaScriptCanOpenWindowsAutomatically = true webView.settings.mediaPlaybackRequiresUserGesture = false注入JS掩盖WebView特征
部分网站会通过JS检测WebView的独有属性(如window.chrome、navigator.plugins)来拦截,你可以在页面加载前注入JS修改这些属性:webView.webViewClient = object : WebViewClient() { override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { super.onPageStarted(view, url, favicon) view?.evaluateJavascript( """ Object.defineProperty(navigator, 'plugins', { get: () => [1, 2, 3] }); Object.defineProperty(window, 'chrome', { value: { runtime: {} } }); """.trimIndent(), null ) } }设置WebChromeClient
添加WebChromeClient以支持网站的交互功能(如弹窗、媒体播放等):webView.webChromeClient = WebChromeClient()确认权限配置
确保AndroidManifest.xml中已添加互联网权限:<uses-permission android:name="android.permission.INTERNET" />
内容的提问来源于stack exchange,提问作者km11
相关产品推荐
相关产品推荐

