您好,登錄后才能下訂單哦!
關鍵部分:
<meta name="viewport" content="width=device-width, initial-scale=1"> webview.loadUrl("javascript:var imgs=document.getElementsByTagName('img');for(var i=0;i<imgs.length;i++){imgs[i].style.width='320px';};void(0);");
需要在加載的HTML中在<head></head>標簽中加入這句話,用于頁面適應手機屏幕;
loadUrl函數是通過模擬a標簽跳轉時的時候調用JS腳本,以完成注入的目的;
測試HTML內容代碼:
<html> <head> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> </head> <body> <img src=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/> <img src=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/> <img src=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/> <img src=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/> </body> </html>
Android Class WebView代碼:
String content = "<html><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></head><body><img src=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/><img src=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/><img src=\"/wyfs02/M02/45/DA/wKioL1PsdWqTvMWZAABqd73eyHI527_middle.jpg\"/><img src=\"/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(new WebViewClient(){ @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); webview.loadUrl("javascript:var imgs=document.getElementsByTagName('img');for(var i=0;i<imgs.length;i++){imgs[i].style.width='320px';};void(0);"); } });
Android Activity 代碼:
<android.webkit.WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/demoView" ></android.webkit.WebView>
Android AndroidManifest.xml 寫入相關權限
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.demo" > <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ..... </manifest>
注意事項:
1、權限不能忘記了,要不然訪問請求不到頁面;
2、網頁描述那一段最好加上“<meat name=....”這段;
webview.loadUrl("javascript:var imgs=document.getElementsByTagName('img');for(var i=0;i<imgs.length;i++){imgs[i].style.width='320px';};void(0);");
JS腳本注入后面加上 void(0),因為頁面會跳轉所以根據以前的前端經驗我加上了這一句,至于為什么模擬A標簽的時候寫了javascript:xxxx,頁面還是會跳轉請路過高手們能告訴我感激不盡
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。