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

WebView加载Facebook个人页报错ERR_UNKNOWN_URL_SCHEME求助

解决WebView加载Facebook页面出现ERR_UNKNOWN_URL_SCHEME的问题

核心问题是Facebook页面会重定向到fb://自定义协议,而WebView无法识别这类非HTTP/HTTPS协议。解决思路是重写WebViewClient的链接拦截方法,对fb://协议做兼容处理:

  • 优先尝试打开Facebook客户端(如果用户已安装)
  • 未安装客户端则自动跳转到网页版链接

完整代码示例

webView = new WebView(ctx);
webView.loadUrl("https://www.facebook.com/Google");
webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        String targetUrl = request.getUrl().toString();
        
        // 拦截fb://开头的自定义协议
        if (targetUrl.startsWith("fb://")) {
            try {
                // 调用系统Intent打开Facebook应用
                Intent fbIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(targetUrl));
                ctx.startActivity(fbIntent);
                return true; // 标记该链接已被处理
            } catch (ActivityNotFoundException e) {
                // 没有安装Facebook,转成网页版链接加载
                String webVersionUrl = targetUrl.replace("fb://", "https://www.facebook.com/");
                view.loadUrl(webVersionUrl);
                return true;
            }
        }
        // 其他HTTP/HTTPS链接正常用WebView加载
        return super.shouldOverrideUrlLoading(view, request);
    }
});

注意事项

  1. 确保你的AndroidManifest.xml中已经添加了网络权限:
<uses-permission android:name="android.permission.INTERNET" />
  1. 这种情况是因为Facebook更新了页面的重定向逻辑,之前的WebView默认处理逻辑不再适用,拦截自定义协议是通用的解决方案。

内容的提问来源于stack exchange,提问作者NullPointerException

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 14:09:50