侧边栏壁纸
博主头像
Stars-One的杂货小窝博主等级

所有的创作都是有价值的

  • 累计撰写 257 篇文章
  • 累计创建 46 个标签
  • 累计收到 27 条评论

目 录CONTENT

文章目录

Android 本地H5 跨域问题

Stars-one
2021-10-16 / 0 评论 / 0 点赞 / 763 阅读 / 2519 字

公司有个项目,使用Webview加载本地Html,出现了跨域问题,和之前其他项目对比了下,发现webview需要设置配置,配置下就ok了,本篇简单记录下

PS:个人更倾向后台设置下

if (Build.VERSION.SDK_INT >= 16) {
    val clazz: Class<*> = mWebView!!.getSettings().javaClass
    val method = clazz.getMethod(
            "setAllowUniversalAccessFromFileURLs", Boolean::class.javaPrimitiveType
    )
    method.invoke(mWebView!!.settings, true)
}
try {//本地HTML里面有跨域的请求 原生webview需要设置之后才能实现跨域请求
        if (Build.VERSION.SDK_INT >= 16) {
            Class<?> clazz = webView.getSettings().getClass();
            Method method = clazz.getMethod(
                    "setAllowUniversalAccessFromFileURLs", boolean.class);
            if (method != null) {
                method.invoke(webView.getSettings(), true);
            }
        }
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (NoSuchMethodException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    }
    webView.loadUrl("file:///android_asset/HtmlFileTT/index.html");
    webView.setWebViewClient(new WebViewClient(){
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            return super.shouldOverrideUrlLoading(view, request);
        }
    });
0

评论区