Java 类android.webkit.WebResourceRequest 实例源码
项目:browser
文件:LightningView.java
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
/*
ByteArrayInputStream EMPTY = new ByteArrayInputStream("".getBytes());
if (mAdBlock.isAd(request.getUrl().getHost())) {
return new WebResourceResponse("text/plain", "utf-8", EMPTY);
}
if(request.getUrl().getHost().indexOf("127.0.0.1")>=0){
//ToastUtil.showMessage("this site is insecure");
return new WebResourceResponse("text/plain", "utf-8", EMPTY);
}
*/
return super.shouldInterceptRequest(view, request);
}
项目:ZhaZhaShop
文件:WebViewActivity.java
private void setupWebView() {
WebSettings settings = mWvWebview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSupportZoom(false);
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
settings.setDomStorageEnabled(true);
WebViewClient webViewClient = new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(String.valueOf(request.getUrl()));
return true;
}
};
mWvWebview.setWebViewClient(webViewClient);
}
项目:WebPager
文件:PagerWebViewClient.java
@TargetApi(24)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log.d(TAG, "shouldOverrideUrlLoading() called with: request = [" + request.getUrl() + "]");
if (pager.webviewClient != null) {
if (pager.webviewClient.shouldOverrideUrlLoading(view, request)) {
return true;
}
}
if (handleUrlLoading(view, request.getUrl().toString())) {
return true;
}
return super.shouldOverrideUrlLoading(view, request);
}
项目:CacheWebView
文件:CacheWebViewClient.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
WebResourceResponse webResourceResponse = null;
if (mCustomWebViewClient!=null){
webResourceResponse = mCustomWebViewClient.shouldInterceptRequest(view,request);
}
if (webResourceResponse != null){
return webResourceResponse;
}
if (!mIsEnableCache){
return null;
}
return mWebViewCache.getWebResourceResponse(this,request.getUrl().toString(),
mCacheStrategy,mEncoding,mCacheInterceptor);
}
项目:KTools
文件:KWebViewClient.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
//此处对文件资源,js,css等请求资源进行拦截,替换
Log.d(TAG, "shouldInterceptRequest: request = \n" +
"\nurl = " + request.getUrl().toString() +
"\nmethod = " + request.getMethod() +
"\nheaders = " + request.getRequestHeaders().toString());
// String url = request.getUrl().toString();
// if ((url.startsWith("https://") || url.startsWith("http://")) && (url.endsWith(".png") || url.endsWith(".jpg"))) {
// Log.d(TAG, "拦截资源 :" + url);
// try {
// WebResourceResponse response = new WebResourceResponse(MimeTypeMap.getFileExtensionFromUrl(".jpg"), "utf-8", FileUtils.getInputStreamFromAssets("img/dog.jpg"));
// return response;
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
return super.shouldInterceptRequest(view, request);
}
项目:JSInterface
文件:MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv_test = (WebView)findViewById(R.id.wv_test) ;
wv_test.getSettings().setJavaScriptEnabled(true);
/* "JSInterface" ==> window.JSInterface
* class JSInterface all @javascriptInterface methods
* js can call JSInterface.method()*/
wv_test.addJavascriptInterface(new JSInterface(MainActivity.this),"JSInterface");
/* at webivew not brower*/
wv_test.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return true ;
}
});
wv_test.loadUrl("file:///android_asset/JSInterface.html");
//wv_test.loadUrl("http://127.0.0.1:8080/JSInterface.html");
}
项目:youkes_browser
文件:LightningView.java
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
/*
ByteArrayInputStream EMPTY = new ByteArrayInputStream("".getBytes());
if (mAdBlock.isAd(request.getUrl().getHost())) {
return new WebResourceResponse("text/plain", "utf-8", EMPTY);
}
if(request.getUrl().getHost().indexOf("127.0.0.1")>=0){
//ToastUtil.showMessage("this site is insecure");
return new WebResourceResponse("text/plain", "utf-8", EMPTY);
}
*/
return super.shouldInterceptRequest(view, request);
}
项目:android-base
文件:AbstractWebkitClient.java
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
String url = request.getUrl().toString();
if (view instanceof AbstractWebKit) {
boolean flag = false;
if (interceptor != null) {
flag = interceptor.shouldOverrideUrlLoading((AbstractWebKit) view, url);
}
if (flag) {
return true;
}
}
String lowurl = url.toLowerCase();
if (lowurl.startsWith("http:") || lowurl.startsWith("https:")) {
view.loadUrl(url, headers != null ? headers.generateHeaders() : null);
return true;
}
}
return true;
}
项目:LsPush
文件:CollectionTargetActivity.java
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onPrepareWebView(WebView webView) {
super.onPrepareWebView(webView);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return false; // let the web view handle the url
}
});
webView.getSettings().setJavaScriptEnabled(true);
// https://labs.mwrinfosecurity.com/blog/webview-addjavascriptinterface-remote-code-execution/
// FIXME: 2016/9/20 fix it later
webView.addJavascriptInterface(new JsInterface(this), getString(R.string.web_image_click_target));
// http://blog.csdn.net/u013107656/article/details/51729398
webView.removeJavascriptInterface("searchBoxJavaBridge_");
webView.removeJavascriptInterface("accessibilityTraversal");
webView.removeJavascriptInterface("accessibility");
webView.setOnTouchListener(this);
}
项目:mobile-messaging-sdk-android
文件:WebViewActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_webview);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
setupActionBar();
Intent webViewIntent = getIntent();
String url = webViewIntent.getStringExtra(EXTRA_URL);
webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return false;
}
});
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.loadUrl(url);
}
项目:AndroidBasicCommonDemos
文件:MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.web_view);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}
});
webView.loadUrl("http://www.baidu.com");
}
项目:DeeBrowser
文件:LightningView.java
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (mAdBlock.isAd(request.getUrl().toString())) {
String stweb = "\n \n \n \n BLOCKED BY AD-BLOCKER" + "\n" +
"\n" +
" \n" +
" \n" +
" \n - TO DISABLE AD-BLOCKER GO TO SETTINGS/GENEARL SETTING";
ByteArrayInputStream EMPTY = new ByteArrayInputStream(stweb.getBytes());
return new WebResourceResponse("text/plain", "utf-8", EMPTY);
}
}
return super.shouldInterceptRequest(view, request);
}
项目:kolibri-android
文件:KolibriWebView.java
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
Crashlytics.log(5, "KolibriWebView",
"onReceivedError() called with: request = [" + request + "], error = [" + error + "]");
// We ignore errors regarding assets loading,
// so in this case we check if the request url and webview url are same
if (request.getUrl().toString().equals(view.getUrl()) || request.isForMainFrame()) {
for (KolibriWebViewClient webClient : webClients) {
webClient.onReceivedError(view, request, error);
}
}
}
项目:CrazyDaily
文件:ZhihuNewsDetailActivity.java
@Override
protected void initListener() {
mFab.setOnClickListener(v -> SnackbarUtil.show(this, "喜欢就点个star吧!"));
mWeb.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
});
}
项目:BilibiliClient
文件:BrowserActivity.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
String errorHtml = "<html><body><h2>找不到网页</h2></body></html>";
view.loadDataWithBaseURL(null, errorHtml, "text/html", "UTF-8", null);
}
项目:BilibiliClient
文件:BrowserActivity.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
String errorHtml = "<html><body><h2>找不到网页</h2></body></html>";
view.loadDataWithBaseURL(null, errorHtml, "text/html", "UTF-8", null);
}
项目:AgentWeb
文件:DefaultWebClient.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
if (AgentWebUtils.isOverriedMethod(mWebViewClient, "onReceivedError", WEBVIEWCLIENTPATH + ".onReceivedError", WebView.class, WebResourceRequest.class, WebResourceError.class)) {
super.onReceivedError(view, request, error);
// return;
}
if (request.isForMainFrame()) {
onMainFrameError(view,
error.getErrorCode(), error.getDescription().toString(),
request.getUrl().toString());
}
LogUtils.i(TAG, "onReceivedError:" + error.toString());
}
项目:AgentWeb
文件:WrapperWebViewClient.java
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
// LogUtils.i(TAG,"this:"+this+" wrapper:"+this.mWebViewClient);
if(mWebViewClient!=null){
return mWebViewClient.shouldOverrideUrlLoading(view,request);
}
return super.shouldOverrideUrlLoading(view, request);
}
项目:AgentWeb
文件:WrapperWebViewClient.java
public WebResourceResponse shouldInterceptRequest(WebView view,
WebResourceRequest request) {
if(mWebViewClient!=null){
return mWebViewClient.shouldInterceptRequest(view,request);
}
return super.shouldInterceptRequest(view, request);
}
项目:AgentWeb
文件:WrapperWebViewClient.java
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
if(mWebViewClient!=null){
mWebViewClient.onReceivedError(view,request,error);
return;
}
super.onReceivedError(view,request,error);
}
项目:AgentWeb
文件:WrapperWebViewClient.java
public void onReceivedHttpError(
WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
if(mWebViewClient!=null){
mWebViewClient.onReceivedHttpError(view,request,errorResponse);
return;
}
super.onReceivedHttpError(view,request,errorResponse);
}
项目:TubiPlayer
文件:TubiVPAID.java
/**
* Fires in cases where the webview cannot even load (e.g. no network)
*/
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
onReceivedError(view,
error.getErrorCode(),
error.getDescription().toString(),
request.getUrl().toString());
}
项目:quickhybrid-android
文件:QuickWebviewClient.java
/**
* 加载资源
* android5.0+支持
*
* @param view
* @param request
* @return
*/
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
WebResourceResponse resourceResponse = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
resourceResponse = loadPage.shouldInterceptRequest(view, request.getUrl().toString());
}
if (resourceResponse == null) {
return super.shouldInterceptRequest(view, request);
} else {
return resourceResponse;
}
}
项目:quickhybrid-android
文件:QuickWebviewClient.java
/**
* 重定向或者A标签
* 7.0+系统支持
*
* @param view
* @param request
* @return
*/
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
String url = request.getUrl().toString();
if (request.isRedirect()) {
loadPage.forwardUrl(view, url);
}
}
return super.shouldOverrideUrlLoading(view, request);
}
项目:Hotspot-master-devp
文件:CustomWebView.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
LogUtils.d("savor:webview "+error.getDescription());
isLoadError = true;
if (updateProgressListener!=null){
updateProgressListener.loadHttpError();
}
}
项目:Hotspot-master-devp
文件:DefaultWebView.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
isLoadError = true;
if (updateProgressListener!=null){
updateProgressListener.loadHttpError();
}
}
项目:Alexa-Voice-Service
文件:LoginWebViewActivity.java
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if(request.getUrl().toString().startsWith("http") || request.getUrl().toString().startsWith("https")){
return super.shouldOverrideUrlLoading(view,request);
}
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(request.getUrl().toString()));
startActivityForResult(i,RESULT_LOGIN);
return true;
}
项目:WebPager
文件:PagerWebViewClient.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
Uri url = request.getUrl();
if ("https://www.fengshihao.com/user.js".indexOf(url.toString()) == 0) {
final WebResourceResponse userjs = new WebResourceResponse("text/javascript", "UTF-8",
new ByteArrayInputStream("console.log('hello user js');".getBytes()));
return userjs;
}
return super.shouldInterceptRequest(view, request);
}
项目:letv
文件:LetvWebViewActivity.java
@TargetApi(21)
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
LogInfo.log("ZSM sFromNative shouldInterceptRequest == " + NativeWebViewUtils.getInstance().getFromNative() + " request == " + request.getUrl().toString());
if (!NativeWebViewUtils.getInstance().getFromNative()) {
return super.shouldInterceptRequest(view, request);
}
super.shouldInterceptRequest(view, request);
return NativeWebViewUtils.getInstance().getResource(request.getUrl().toString());
}
项目:CacheWebView
文件:CacheWebViewClient.java
@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if (mCustomWebViewClient!=null){
boolean ret = mCustomWebViewClient.shouldOverrideUrlLoading(view,request);
if (ret){
return true;
}
}
view.loadUrl(request.getUrl().toString());
return true;
}
项目:CacheWebView
文件:CacheWebViewClient.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
if (mCustomWebViewClient!=null){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mCustomWebViewClient.onReceivedError(view, request, error);
}
return;
}
super.onReceivedError(view, request, error);
}
项目:CacheWebView
文件:CacheWebViewClient.java
@Override
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
if (mCustomWebViewClient!=null){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mCustomWebViewClient.onReceivedHttpError(view, request, errorResponse);
}
return;
}
super.onReceivedHttpError(view, request, errorResponse);
}
项目:pre-dem-android
文件:ProbeWebClient.java
@SuppressLint("NewApi")
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
if (request != null && request.getUrl() != null) {
try {
if (!GlobalConfig.isExcludeHost(request.getUrl().getHost())) {
return getResponseFromUrl(new URL(request.getUrl().toString()));
}
} catch (Throwable e) {
e.printStackTrace();
}
}
return null;
}
项目:studydemo
文件:WebViewActivity.java
private void initView() {
mProgressBar = (ProgressBar) findViewById(R.id.mProgressBar);
mWebView = (WebView) findViewById(R.id.mWebView);
Intent intent = getIntent();
String title = intent.getStringExtra("title");
final String url = intent.getStringExtra("url");
L.i("url:" + url);
//进行加载网页的逻辑
//支持JS
mWebView.getSettings().setJavaScriptEnabled(true);
//支持缩放
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setBuiltInZoomControls(true);
//接口回调
mWebView.setWebChromeClient(new WebViewClient());
//加载网页
mWebView.loadUrl(url);
//本地显示
mWebView.setWebViewClient(new android.webkit.WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(url);
//我接受这个事件
return true;
}
});
}
项目:adyo-android
文件:AdyoWebViewClient.java
@RequiresApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
String url=request.getUrl().toString();
if (!placement.getCreativeUrl().equals(url)) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
context.startActivity(i);
return true;
}
return false;
}
项目:WebViewJavaScriptBridge
文件:WebViewJavaScriptBridge.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView webView, WebResourceRequest webResourceRequest) {
String url = null != webResourceRequest.getUrl() ? webResourceRequest.getUrl().toString() : null;
if (!TextUtils.isEmpty(url) && url.startsWith(LOCAL_FILE_SCHEMA)) {
return getLocalResource(url);
}
if (null != _webViewDelegate && null != _webViewDelegate.get()) {
return _webViewDelegate.get().shouldInterceptRequest(webView, webResourceRequest);
}
return super.shouldInterceptRequest(webView, webResourceRequest);
}
项目:firefox-tv
文件:TrackingProtectionWebViewClientTest.java
private static WebResourceRequest createRequest(final String url, final boolean isForMainFrame) {
return new WebResourceRequest() {
@Override
public Uri getUrl() {
return Uri.parse(url);
}
@Override
public boolean isForMainFrame() {
return isForMainFrame;
}
@Override
public boolean isRedirect() {
return false;
}
@Override
public boolean hasGesture() {
return false;
}
@Override
public String getMethod() {
return null;
}
@Override
public Map<String, String> getRequestHeaders() {
return null;
}
};
}
项目:Xndroid
文件:LightningWebClient.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, @NonNull WebResourceRequest request) {
if (mAdBlock.isAd(request.getUrl().toString())) {
ByteArrayInputStream EMPTY = new ByteArrayInputStream("".getBytes());
return new WebResourceResponse("text/plain", "utf-8", EMPTY);
}
return super.shouldInterceptRequest(view, request);
}
项目:AppAuthWebView-Android
文件:AppAuthWebView.java
@Override
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
isErrorReceived = true;
if (!isRedirect) {
mWebView.stopLoading();
mAppAuthWebViewListener.showConnectionErrorLayout();
mWebView.setVisibility(View.INVISIBLE);
}
super.onReceivedHttpError(view, request, errorResponse);
}
项目:mangafox
文件:MainActivity.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
// Log the error message for debugging
Log.d(getClass().getSimpleName(), error.toString());
// Display toast message describing error details
String errorDetails = String.valueOf(error.getDescription());
Toast.makeText(mContext, errorDetails, Toast.LENGTH_LONG).show();
}