1. 程式人生 > >Android巢狀h5圖片適配問題

Android巢狀h5圖片適配問題

      最近維護一個新聞相關APP,新聞詳情是h5寫的,後臺新聞編輯的工具就是一個簡單的編輯器,所有的圖片操作居中之類的都需要客戶自己操作,唉,不智慧啊,苦了我們前端開發.

言歸正傳,問題就是客戶上傳的圖片小,這邊不處理的話就居右顯示,特醜,,,,處理的方法如下所示,完美解決..

 webView.setWebViewClient(new WebViewClient() {
                public boolean shouldOverrideUrlLoading(WebView view, String url) { //  重寫此方法表明點選網頁裡面的連結還是在當前的webview
裡跳轉,不跳到瀏覽器那邊 view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { view.getSettings().setJavaScriptEnabled(true); super.onPageFinished(view, url); addImageClickListner(view); Tools.dismissWaitDialog
(); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { view.getSettings().setJavaScriptEnabled(true); super.onPageStarted(view, url, favicon); } @Override public void onReceivedError(WebView view, int
errorCode, String description, String failingUrl) { Tools.dismissWaitDialog(); super.onReceivedError(view, errorCode, description, failingUrl); } @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { WebResourceResponse response = super.shouldInterceptRequest(view, url); if (url != null && url.contains(INJECTION_TOKEN)) { String assetPath = url.substring(url.indexOf(INJECTION_TOKEN) + INJECTION_TOKEN.length(), url.length()); try { response = new WebResourceResponse( "application/javascript", "UTF8", webView.getContext().getAssets().open(assetPath) ); } catch (IOException e) { e.printStackTrace(); // Failed to load asset file } } return response; } }); } }); } // 注入js函式監聽 private static void addImageClickListner(WebView webView) { // 這段js函式的功能就是,遍歷所有的img幾點,並新增onclick函式,在還是執行的時候呼叫本地介面傳遞url過去 webView.loadUrl("javascript:(function(){" + "var objs = document.getElementsByTagName(\"img\");" + "for(var i=0;i<objs.length;i++) " + "{" + "var img = objs[i]; " + "winWidth = window.innerWidth;" + "img.style.width = winWidth;" + "}" + "})()"); }