Andorid WebView内容自适应并改变图片大小
关键部分:
<metaname="viewport"content="width=device-width,initial-scale=1">webview.loadUrl("javascript:varimgs=document.getElementsByTagName('img');for(vari=0;i<imgs.length;i++){imgs[i].style.width='320px';};void(0);");
需要在加载的HTML中在<head></head>标签中加入这句话,用于页面适应手机屏幕;
loadUrl函数是通过模拟a标签跳转时的时候调用JS脚本,以完成注入的目的;
测试HTML内容代码:
<html><head><metaname=\"viewport\"content=\"width=device-width,initial-scale=1\"></head><body><imgsrc=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/><imgsrc=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/><imgsrc=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/><imgsrc=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/></body></html>
Android Class WebView代码:
Stringcontent="<html><head><metaname=\"viewport\"content=\"width=device-width,initial-scale=1\"></head><body><imgsrc=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/><imgsrc=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/><imgsrc=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/><imgsrc=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/></body></html>";webview=(WebView)findViewById(R.id.demoView);webview.getSettings().setJavaScriptEnabled(true);webview.loadDataWithBaseURL("https://s3.51cto.com",content,"text/html","utf-8",null);webview.setWebViewClient(newWebViewClient(){@OverridepublicvoidonPageFinished(WebViewview,Stringurl){super.onPageFinished(view,url);webview.loadUrl("javascript:varimgs=document.getElementsByTagName('img');for(vari=0;i<imgs.length;i++){imgs[i].style.width='320px';};void(0);");}});
Android Activity 代码:
<android.webkit.WebViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/demoView"></android.webkit.WebView>
Android AndroidManifest.xml 写入相关权限
<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.demo"><uses-permissionandroid:name="android.permission.INTERNET"/><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>.....</manifest>
注意事项:
1、权限不能忘记了,要不然访问请求不到页面;
2、网页描述那一段最好加上“<meat name=....”这段;
webview.loadUrl("javascript:varimgs=document.getElementsByTagName('img');for(vari=0;i<imgs.length;i++){imgs[i].style.width='320px';};void(0);");
JS脚本注入后面加上 void(0),因为页面会跳转所以根据以前的前端经验我加上了这一句,至于为什么模拟A标签的时候写了javascript:xxxx,页面还是会跳转请路过高手们能告诉我感激不尽
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。