Android等待浏览器意图完成

我正在编写重定向到URL(我的服务器)的付款方式并保存一些信息,然后转到银行页面以获得付款价格。但有问题Android等待浏览器意图完成

我想等待浏览器意图完成/取消付款过程。但完成立即后开始意图,我不能检查与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");

}

回答:

浏览器是不太可能有结果返回,因为没有办法来指定此时它应该返回。您应该使用WebView,并检测您认为完成或取消点的特定URL。

你需要实现一个WebViewClient,并以检测导航到一个特定的URL,像这样覆盖public boolean shouldOverrideUrlLoading (WebView view, String url)

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;

}

}

在你WebView你需要调用setWebViewClient()

WebView webview = findViewById(R.id.webview); 

webview.getSettings().setJavaScriptEnabled(true);

webview.setWebViewClient(new MyWebViewClient());

webview.loadUrl("https://yourpaymenturl.com/");

回答:

的浏览器不会发送结果。使用startActivityForResult(),ACTION_VIEW和ACTION_MAIN协议无法正常工作。

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

你应该开始一个web视图,并确定如果用户通过跟踪当前的URL完成。

以上是 Android等待浏览器意图完成 的全部内容, 来源链接: utcz.com/qa/265747.html

回到顶部