You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:50:25