Android WebView 加载本地html跨域问题

前言 :

各位同学大家好 ,最近有段时间没有给大家更新文章。最近事情也比较多哈。年底了嘛毕竟要坚守岗位 做好收尾工作。今天要分享是Android WebView 加载本地html跨域问题 。那么废话不多说,我们正式开始

问题背景

今天接到一个需求 项目组这边用laya 开发一个app 最后编译成js 本地资源然后安卓这边 加载本地的html入口来实现 有些同学会说这么很简单 我们初始化webview 然后 加载本地路径的html 就行了 但是本地的js里面带着http的请求 这时候就出现跨域名访问的问题
image.png
具体解决 我们就需要

   try {//本地HTML里面有跨域的请求 原生webview需要设置之后才能实现跨域请求
            if (Build.VERSION.SDK_INT >= 16) {
                Class<?> clazz = mwebview.getSettings().getClass();
                Method method = clazz.getMethod(
                        "setAllowUniversalAccessFromFileURLs", boolean.class);
                if (method != null) {
                    method.invoke(mwebview.getSettings(), true);
                }
            }
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

通过反射调用webview内部方法 设置setAllowUniversalAccessFromFileURLs 为true 来处理跨域问题即可

最后总结

安卓用到webview的场景还是很多的 这里我只是做一个bug搜集 希望有更多的网友能把自己平时遇到的整理发布出来 这样我们在下次解决BUG的时候就会得心应手。最后祝愿各位网友和同学 2022年心想事成 往事如意 我要继续工作了 ,希望我的文章能帮助到各位解决问题 ,以后我还会贡献更多有用的代码分享给大家。各位同学如果觉得文章还不错 ,麻烦给关注和star,小弟在这里谢过啦!

参考地址:

https://www.jianshu.com/p/833ac6734817

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xq9527--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值