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