2016-09-29 2 views
0

결제 포털에서 결제 성공 이벤트를 확인하려고합니다. 이 프로세스를 알고있을 수 있습니다. '콜백 URL'을 다른 매개 변수 중 하나로 지불 웹 사이트에 보냅니다. 결제가 이루어지면 웹 사이트는 브라우저를 '콜백 URL'로 리디렉션합니다.Android WebView - URL 로딩 차단

이것은 Android 애플리케이션이므로 '콜백 URL'로 맞춤 구성표 ('myapp : // order/123')를 사용하여 맞춤 URL을 지정합니다. 다음 기술을 사용하여 '콜백 URL'은 사용자 지정 작업을 수행합니다.

mWebView.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      LOG.info("Inside shouldOverrideUrlLoading(), url: {}", url); 

      if (url.startsWith("myapp://")) { 
       onPaymentPerformed(); 
       return true; 
      } else { 
       return false; 
      } 
     } 
} 

최근 몇 개월 동안 작동했지만 실패했습니다. 이유는 모르지만 장치 업데이트로 인한 것일 수 있습니다. 이 메소드는 'myapp : //'url에 대한 호출이 중지되었습니다. 이 요구되지 않음) 'https://order/123'에 '// 주문/123의 MyApp를'하지만 방법 shouldOverrideUrlLoading (I 로그를 확인하고 내가 변경하려고 다음과 같은 메시지가 다음

I/chromium: [INFO:CONSOLE(2174)] "Mixed Content: The page at 'https://www.liqpay.com/en/checkout/success/xxxx' was loaded over a secure connection, but contains a form which targets an insecure endpoint 'myapp://order/7'. This endpoint should be made available over a secure connection.", source: https://static.liqpay.com/checkout/160922113118/js/index.js (2174)

을 발견했습니다 URL 대신에 나는 웹보기에서 표준 오류 메시지가 표시됩니다

The webpage at https://order/123 could not be loaded because: net::ERR_NAME_NOT_RESOLVED 

나는 인터넷에서 이와 유사한 아무것도 발견,

답변

0

당신은 웹 클라이언트를 서브 클래스와 onReceiveSslError 메소드를 오버라이드 (override) 할 수 도와주세요.

private class SSLTolerentWebViewClient extends WebViewClient { 
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { 
     handler.proceed(); // proceed ignoring ssl error. 
    } 
} 

작동하는지 확인하십시오. @Override 공공 WebResourceResponse shouldInterceptRequest (웹보기보기, 문자열 URL) 이 방법은 항상 트리거 중 하나 이것을 '의 MyApp :

+0

는 불행하게도, 그러나 나는 다른 방법을 재정 의하여 작동하도록 관리했습니다되지 않습니다 : // order/'또는'https : // order/'scheme을 사용합니다. 그런 다음이 방법으로 200 OK 응답을 반환하고 필요한 모든 작업을 시작합니다. – ievgen