gpt4 book ai didi

Android 等待浏览器 Intent 完成

转载 作者:搜寻专家 更新时间:2023-11-01 09:29:48 25 4
gpt4 key购买 nike

我正在编写一种支付方式,它重定向到一个 URL(我的服务器)并保存一些信息,然后转到银行页面以获取支付价格。但是有一个问题

我想等待浏览器 Intent 完成/取消支付流程。但它在开始 Intent 后立即完成,我无法用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 并覆盖 public boolean shouldOverrideUrlLoading (WebView view, String url)为了检测到特定 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/");

关于Android 等待浏览器 Intent 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47994015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com