Android 中加載本地Html 跨域問題,http協議允許加載


一、需求:

后台加載HTML的包時間太長,太卡,讓把所有的HTML包放到前台;
使用的是file://協議,有些內容和樣式加載不出來,H5那邊說需要用http://協議來加載;

二、處理過程:

安卓最簡單的加載本地HTML的方法是:webView.loadUrl("file:///android_asset/HtmlFileTT/index.html");
但是必須使用http 協議請求資源會有跨域問題,加載不了。

處理方式

 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); } });





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM