2017-12-27 64 views
1

나는 URL (내 서버)로 리다이렉트하는 정보를 저장하고 유료 가격으로 은행 페이지로가는 지불 방법을 코딩하고있다. 하지만 문제가 있습니다안드로이드는 브라우저의 의도가 끝날 때까지 기다린다.

브라우저의 의도가 끝날 때까지 기다리거나 지불 프로세스를 취소하고 싶습니다. 하지만 시작 의도 후 즉시이 끝났으며 나는 startActivityForResult()onActivityResult()으로 확인할 수 없습니다.
나는 startActivityForResult()이 호출 된 직후 결과가 나옵니다. 있는이 반환해야 포인트를 지정 할 수있는 방법이 없기 때문에

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(******)); 
startActivityForResult(intent, 100); 

. 
. 
. 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data)     
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode == 100) 
     Log.w("web", "finish"); 
} 

답변

1

브라우저는 결과를 반환 할 가능성이 아닙니다. 대신 WebView을 사용하고 완료 또는 취소 지점으로 간주하는 특정 URL을 감지해야합니다.

WebView webview = findViewById(R.id.webview); 
webview.getSettings().setJavaScriptEnabled(true); 
webview.setWebViewClient(new MyWebViewClient()); 
webview.loadUrl("https://yourpaymenturl.com/"); 
+0

감사합니다 .... 네, 이런 식으로 WebView를 사용할 수 있습니다. 하지만 로컬 안드로이드 시장 웹보기를 사용하여 나를 금지하고 그들은 외부 브라우저를 사용해야한다고 내게 말했다 때문에 .... –

+1

내가 말했듯이, 브라우저가 트랜잭션을 고려해야 할 곳을 지정하는 방법은 없습니다 완료되었습니다. 결제 플랫폼에서 결제가 완료되면 리디렉션되는 URL을 지정할 수 있습니다 (일반적으로 웹 페이지에서 웹 사이트로 돌아 가기 위해 사용됩니다). 앱에서 처리하는 URL을 지정할 수 있습니다. 즉, 이것은 해킹 일 것입니다. –

+0

예 .... 맞춤 URL 스키마 –

1

: 당신의 WebViewsetWebViewClient()를 호출 할 필요가에서

class MyWebViewClient : WebViewClient { 

    @Override 
    public boolean shouldOverrideUrlLoading (WebView view, String url) { 
     if (url.equals(FINISH_URL)) { 
      // Finished, we return true to handle navigation ourselves 
      return true; 
     } 

     // Keep navigating 
     return false; 
    } 
} 

을 :

당신은 WebViewClient를 구현하고, 특정 URL에 탐색을 감지과 같이하기 위해 public boolean shouldOverrideUrlLoading (WebView view, String url)를 재정의해야 브라우저는 결과를 보내지 않습니다. ACTION_VIEW 및 ACTION_MAIN 프로토콜이 startActivityForResult()에서 제대로 작동하지 않습니다. 당신은 웹보기를 시작하고 사용자가 현재 URL을 추적하여 완료 여부를 결정해야한다

https://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, INT).

+0

감사합니다.하지만 다른 답변에서 말한 것처럼 지역 안드로이드 마켓에서 나온 개인 정보 보호 정책 때문에 웹보기를 사용할 수 없습니다. –