类android.webkit.WebResourceRequest源码实例Demo

下面列出了怎么用android.webkit.WebResourceRequest的API类实例代码及写法,或者点击链接到github查看源代码。

@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    Log.e("cookie", mCookieManager.getCookie(mUrl));
    if (mTimer != null){
        mTimer.cancel();
        mTimerTask.cancel();
    }
    if (mCookieManager.getCookie(mUrl).contains("cf_clearance")) {
        if (!isSuccess) {
            setSuccess(true);
            mWebView.stopLoading();
            mListener.onSuccess(mCookieManager.getCookie(mUrl));
            return true;
        }
    }
    setCanTimeOut(true);
    return super.shouldOverrideUrlLoading(view, request);
}
 
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.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);
}
 
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    WebView webview = new WebView(this.getActivity());

    webview.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            view.loadUrl(request.getUrl().toString());
            return false;
        }
    });

    webview.getSettings().setJavaScriptEnabled(true);
    webview.loadUrl(this.url);

    return webview;
}
 
源代码4 项目: 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);
}
 
源代码5 项目: AndroidWallet   文件: BaseWebView.java
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
    super.onReceivedHttpError(view, request, errorResponse);
    if (mClient == null) {
        return;
    }
    mClient.onReceivedHttpError(view, request, errorResponse);
}
 
@SuppressLint("NewApi")
@Override
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
    super.onReceivedHttpError(view, request, errorResponse);
    String errRespStr = "";
    if (errorResponse != null) {
        if (Util.isCompateApi(21)) {
            errRespStr += "status code =" + errorResponse.getStatusCode() + " | reason : " + errorResponse.getReasonPhrase();
        }
    }
    e(null, "--> onReceivedHttpError() request url = " + request.getUrl() + "  errRespStr = " + errRespStr);
}
 
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    Log.i("Info", "MiddlewareWebViewClient -- >  shouldOverrideUrlLoading:" + request.getUrl().toString() + "  c:" + (count++));
    if (shouldOverrideUrlLoadingByApp(view, request.getUrl().toString())) {
        return true;
    }
    return super.shouldOverrideUrlLoading(view, request);

}
 
源代码8 项目: Hentoid   文件: BaseWebActivity.java
/**
 * Note : this method is called by a non-UI thread
 */
@Override
public WebResourceResponse shouldInterceptRequest(@NonNull WebView view,
                                                  @NonNull WebResourceRequest request) {
    // Data fetched with POST is out of scope of analysis and adblock
    if (!request.getMethod().equalsIgnoreCase("get")) {
        Timber.d("[%s] ignoring; method = %s", request.getUrl().toString(), request.getMethod());
        return super.shouldInterceptRequest(view, request);
    }

    String url = request.getUrl().toString();
    WebResourceResponse result = shouldInterceptRequestInternal(url, request.getRequestHeaders());
    if (result != null) return result;
    else return super.shouldInterceptRequest(view, request);
}
 
源代码9 项目: v9porn   文件: GoogleRecaptchaVerifyActivity.java
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
    String url = request.getUrl().toString();
    if (url.contains("?__cf_chl_captcha_tk__")) {
        runOnUiThread(() -> webView.evaluateJavascript("javascript:getPostData()", value -> {
            String postData = value.replace("\"", "");
            Logger.t(TAG).d(postData);
            String[] data = postData.split(",");
            Logger.t(TAG).d(data);
            if (data.length >= 4) {
                doPost(data[0], data[1], data[2], data[3]);
            } else {
                showMessage("无法获取POST数据,请刷新重试", TastyToast.ERROR);
                btnRefresh.setText("刷新重试");
            }
        }));
        synchronized (lock) {
            try {
                //等待验证结果
                lock.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return new WebResourceResponse("", "", null);
    }
    Log.d(TAG, url);
    return super.shouldInterceptRequest(view, request);
}
 
源代码10 项目: YCAudioPlayer   文件: WebViewActivity.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
    super.onReceivedError(view, request, error);
    LogUtils.e("WebViewActivity-----onReceivedError-------" + error.toString());
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        LogUtils.e("服务器异常" + error.getDescription().toString());
    }
    ToastUtils.showRoundRectToast("服务器异常6.0之后");
    //当加载错误时,就让它加载本地错误网页文件
    //mWebView.loadUrl("file:///android_asset/errorpage/error.html");

    showErrorPage();//显示错误页面
}
 
源代码11 项目: AdBlocker_Reborn   文件: WebViewHook.java
private String checkURL(XC_MethodHook.MethodHookParam param) {
    if (param.args[1] instanceof String) {
        return param.args[1].toString();
    } else {
        WebResourceRequest request = (WebResourceRequest) param.args[1];
        return request.getUrl().toString();
    }
}
 
源代码12 项目: rides-android-sdk   文件: RideRequestView.java
@TargetApi(23)
@Override
public void onReceivedError(WebView view,
        WebResourceRequest request,
        WebResourceError error) {
    receivedError();
}
 
源代码13 项目: FastWebView   文件: InnerFastClient.java
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
    if (mDelegate != null) {
        mDelegate.onReceivedHttpError(view, request, errorResponse);
        return;
    }
    super.onReceivedHttpError(view, request, errorResponse);
}
 
源代码14 项目: unity-ads-android   文件: WebPlayerView.java
@TargetApi(21)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
	WebResourceResponse returnValue = null;

	if (shouldCallSuper("shouldInterceptRequest")) {
		returnValue = super.shouldInterceptRequest(view, request);
	}
	if (shouldSendEvent("shouldInterceptRequest")) {
		WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.WEBPLAYER, WebPlayerEvent.SHOULD_INTERCEPT_REQUEST,  request.getUrl().toString(), viewId);
	}

	return returnValue;
}
 
源代码15 项目: ByWebView   文件: MyWebViewClient.java
@Override
    public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
        super.onReceivedHttpError(view, request, errorResponse);
//        WebTools.handleReceivedHttpError(view, errorResponse);
        // 这个方法在 android 6.0才出现
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
            int statusCode = errorResponse.getStatusCode();
            if (404 == statusCode || 500 == statusCode) {
                String mErrorUrl = "file:///android_asset/404_error.html";
                view.loadUrl(mErrorUrl);
            }
        }
    }
 
源代码16 项目: ByWebView   文件: MyWebViewClient.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
    super.onReceivedError(view, request, error);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        if (request.isForMainFrame()) {//是否是为 main frame创建
            String mErrorUrl = "file:///android_asset/404_error.html";
            view.loadUrl(mErrorUrl);
        }
    }
}
 
@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);
}
 
源代码18 项目: VideoOS-Android-SDK   文件: VenvyWebView.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
    if (mIwebViewClient != null) {
        mIwebViewClient.onReceivedError(view, request, error);
    } else {
        super.onReceivedError(view, request, error);
    }
}
 
源代码19 项目: VideoOS-Android-SDK   文件: VenvyWebView.java
@Override
        public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
            if (mIwebViewClient != null) {
                mIwebViewClient.onReceivedHttpError(view, request, errorResponse);
            } else {
                super.onReceivedHttpError(view, request, errorResponse);
            }

//			Log.i(TAG, "onReceivedHttpError:" + 3 + "  request:" + mGson.toJson(request) + "  errorResponse:" + mGson.toJson(errorResponse));
        }
 
源代码20 项目: 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;
}
 
源代码21 项目: JsBridge   文件: BridgeWebViewClient.java
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    String url = request.getUrl().toString();
    //modify:hjhrq1991,web为渲染即跳转导致系统未调用onPageStarted就调用onPageFinished方法引起的js桥初始化失败
    if (onPageStartedCount < 2) {
        isRedirected = true;
    }
    onPageStartedCount = 0;

    try {
        url = URLDecoder.decode(url, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    if (url.startsWith(BridgeUtil.YY_RETURN_DATA)) { // 如果是返回数据
        webView.handlerReturnData(url);
        return true;
    } else if (url.startsWith(BridgeUtil.YY_OVERRIDE_SCHEMA)) { //
        webView.flushMessageQueue();
        return true;
    } else {
        if (bridgeWebViewClientListener != null) {
            return bridgeWebViewClientListener.shouldOverrideUrlLoading(view, request);
        } else {
            return super.shouldOverrideUrlLoading(view, request);
        }
    }
}
 
源代码22 项目: GDPR-Admob-Android   文件: ConsentForm.java
@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    String url = request.getUrl().toString();
    if (isConsentFormUrl(url)) {
        handleUrl(url);
        return true;
    }
    return false;
}
 
源代码23 项目: lbry-android   文件: FileViewFragment.java
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    Uri url = request.getUrl();
    if (context != null) {
        Intent intent = new Intent(Intent.ACTION_VIEW, url);
        context.startActivity(intent);
    }
    return true;
}
 
源代码24 项目: AndroidProject   文件: BrowserView.java
/**
 * 同名 API 兼容
 */
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
    if (request.isForMainFrame()) {
        onReceivedError(view,
                error.getErrorCode(), error.getDescription().toString(),
                request.getUrl().toString());
    }
}
 
源代码25 项目: ByWebView   文件: ByWebViewClient.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
    super.onReceivedError(view, request, error);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        if (request.isForMainFrame()) {//是否是为 main frame创建
            String mErrorUrl = "file:///android_asset/404_error.html";
            view.loadUrl(mErrorUrl);
        }
    }
}
 
源代码26 项目: CoreModule   文件: BrowserFragment.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
    super.onReceivedError(view, request, error);
    mEmptyLayout.setErrorType(EmptyLayout.NODATA);
    if (callback != null) {
        callback.onReceivedError(view, request, error);
    }
}
 
源代码27 项目: ZbarCode   文件: ResultsActivity.java
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
    super.onReceivedError(view, request, error);
    if (_dialog != null) {
        _dialog.dismiss();
        _dialog=null;
    }
    mTxtTitle.setVisibility(View.GONE);
    mTxtContent.setVisibility(View.VISIBLE);
    mTxtContent.setText("链接有问题");
}
 
源代码28 项目: AgentWeb   文件: WebViewClientDelegate.java
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    if (mDelegate != null) {
        return mDelegate.shouldOverrideUrlLoading(view, request);
    }
    return super.shouldOverrideUrlLoading(view, request);
}
 
源代码29 项目: unity-ads-android   文件: WebViewApp.java
@Override
public void onReceivedError(android.webkit.WebView view, WebResourceRequest request, WebResourceError error) {
	super.onReceivedError(view, request, error);
	if (view != null) {
		DeviceLog.error("WEBVIEW_ERROR: " + view.toString());
	}
	if (request != null) {
		DeviceLog.error("WEBVIEW_ERROR: " + request.toString());
	}
	if (error != null) {
		DeviceLog.error("WEBVIEW_ERROR: " + error.toString());
	}
}
 
源代码30 项目: CoreModule   文件: BrowserDelegateOption.java
@Override
public void onReceivedError(final WebView view, WebResourceRequest request,
                            WebResourceError error) {
    super.onReceivedError(view, request, error);
    final EmptyLayout emptyLayout = viewDelegate.get(R.id.emptylayout);
    emptyLayout.setOnLayoutClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            view.loadUrl(view.getUrl());
            emptyLayout.setErrorType(EmptyLayout.NETWORK_LOADING);
        }
    });
    emptyLayout.setErrorType(EmptyLayout.NETWORK_ERROR);
}