webview是android开发中常用的一个控件,它可以加载本地的html文件,也可以直接加载一个已存在的有效网络连接,但是当我们加载本地的html时,通过本地的html去加载不同域名的网页是就可能会发生跨域请求问题,出现这个问题可以用js的方式解决也可以用java的方式解决:
提示错误:No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
下面在提供的解决方式:
在loadurl(“有效链接”)方法之前,添加这几行代码即可解决:代码如下
try { 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(); }
ok,问题解决了