android - 无法在禁用 webview 的设备上启动 paytm UPI
问题描述
我正在尝试在 Android 上深度链接到 paytm UPI。它在普通设备上运行良好,但带有禁用 android 系统 Webview 的设备不会进入 UPI 并显示“没有应用程序可以执行此操作”。
注意:- 已安装最新版本的 Google Chrome,并且也设置为默认应用。如果此代码有任何改进,请告诉我。
Uri uri = Uri.parse("upi://pay").buildUpon()
.appendQueryParameter("pa", "paytm-********@paytm")
.appendQueryParameter("pn", "Demo")
.appendQueryParameter("tr", txnID)
.appendQueryParameter("mc", "****")
.appendQueryParameter("tn", "Payment against Order: " + txnID)
.appendQueryParameter("am",
ServiceUtility.chkNull(MyApplication.cartTotal).toString().trim())
//ServiceUtility.chkNull(MyApplication.cartTotal).toString().trim()
.appendQueryParameter("cu", "INR")
.build();
Logger.error("proceedToMakeUPI", "uri " + uri);
Intent upiPayIntent = new Intent(Intent.ACTION_VIEW);
upiPayIntent.setData(uri);
ComponentName name = new ComponentName("net.one97.paytm",
"net.one97.paytm.upi.deeplink.UPIDeeplinkActivity");
upiPayIntent.addCategory(Intent.CATEGORY_LAUNCHER);
upiPayIntent.setComponent(name);
Intent chooser = Intent.createChooser(upiPayIntent, "Pay with");
if (null != chooser.resolveActivity(getContext().getPackageManager())) {
Logger.error("proceedToMakeUPI", "UPI Payment resolved to activity");
startActivityForResult(chooser, REQ_UPIPAYMENT);
} else {
Logger.error("proceedToMakeUPI", "No activity found to handle UPI Payment");
}
解决方案
推荐阅读
- c - 如何在两条直线之间生成随机坐标?
- c# - 使用实体框架核心时如何将“Uri”转换为字符串
- android - 如何使用 Azure DevOps 版本控制系统(旧 TFS),使用 Android Studio?
- mysql - 如何按时间顺序从两个或多个表中进行选择?
- angular - Angular Show loader 从 httpclient.get 获取数据
- selenium - 是否可以等待一个表直到它的所有行完全加载
- javascript - 如何在three.js中的control.reset()之后修复pan
- jquery - jQuery:选择
- python - Python + Gtk + WebKit:页面更改后滚动条高度未重置
- node.js - 如何识别没有用于使用 Puppeteer 进行测试的类的输入?