Цитата(Felan @ 19.12.2016, 18:41) | http://stackoverflow.com/questions/4780899/intercept-and-override-http-requests-from-webview По идее все эти ресурсы должны грузиться отдельно. |
Вот так, в принципе, должно работать...
Код | private class myWebViewClient extends WebViewClient {
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (Uri.parse(url).getHost().contains(URL_HOST)) { if(url.equals(URL_FULL)){ Log.i("MyAPP", "Load pagehtml URL_FULL "); view.loadUrl(url); } else { Log.i("MyAPP", "Load pagehtml URL_HOST "); view.loadUrl(url); } return false; } else { Log.i("MyAPP", "Load pagehtml NOT_HOST "); } return true; }
public void onPageStarted(WebView view,String url, Bitmap favicon){ Log.i("MyAPP", "STARTED load page "); }
@Override public void onLoadResource(WebView view, String url) {
if (Uri.parse(url).getHost().contains(URL_HOST)) { if (url.equals(URL_FULL)) { Log.i("MyAPP", "Load page HTML "); super.onLoadResource(view, url); } else { Log.i("MyAPP", "Load resource URL_HOST "); super.onLoadResource(view, url); } } else { if (Uri.parse(url).getHost().contains("www.facebook.com")) { Log.i("MyAPP", "Load FaceBook "); super.onLoadResource(view, "file:///android_asset/empty.html"); } else { Log.i("MyAPP", "Load resource OTHER "); super.onLoadResource(view, "file:///android_asset/empty.js"); } } }
@Override public void onPageFinished(WebView view, String url) { view.loadUrl("javascript:" + "var e = 1;"); }
} protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_browser);
mWebView = (WebView) findViewById(R.id.web_view); mWebView.setWebViewClient(new myWebViewClient()); /* mWebView.setWebChromeClient(new myWebChromeClient());*/ mWebView.getSettings().setJavaScriptEnabled(true); Log.i("MyAPP", "Load start in onCreate"); mWebView.loadUrl(URL_FULL);
}
|
Логи
Код | I/MyAPP: Load start in onCreate D/OpenGLRenderer: Enabling debug mode 0 W/AwContents: nativeOnDraw failed; clearing to background color. I/MyAPP: STARTED load page I/MyAPP: Load page HTML W/AwContents: nativeOnDraw failed; clearing to background color. I/MyAPP: Load FaceBook I/MyAPP: Load resource OTHER I/MyAPP: Load resource OTHER I/MyAPP: Load resource OTHER I/MyAPP: Load resource URL_HOST I/MyAPP: Load resource URL_HOST I/chromium: [INFO:async_pixel_transfer_manager_android.cc(56)] Async pixel transfers not supported I/chromium: [INFO:async_pixel_transfer_manager_android.cc(56)] Async pixel transfers not supported I/chromium: [INFO:CONSOLE(2)] "Uncaught TypeError: Cannot read property 'length' of null", source: http://... (2) I/MyAPP: Load resource URL_HOST I/MyAPP: Load resource OTHER I/MyAPP: Load resource OTHER I/MyAPP: Load resource URL_HOST
|
Вроде бы как всё отрабатывает, но всё равно загружаются сторонние скрипты и фреймы... в onPageFinished вставлял WebView.saveWebArchive(), смотрел результат... увы, подмена не удалась...
onLoadResource вообще непонятно работает. |