Исключение при вызове намерения для загрузки платежного приложения UPI: android.content.ActivityNotFoundException: не найдена активность для обработки намерения
Я пытаюсь инициировать платеж с помощью UPI из приложения Android IONIC(Javascript)
Я получаю следующее исключение
android.content.ActivityNotFoundException: не найдена активность для обработки Intent {act = android.intent.action.SEND dat = upi: // pay? pa=recipient@hdfc&pn=recipient_name&am=102.00&tn=Test_Transaction}
01-10 21: 58: 32.334 E / PluginManager (29853): на android.app.Instrumentation.checkStartActivityResult (Instrumentation.java:1792)
01-10 21: 58: 32.334 E / PluginManager (29853): на android.app.Instrumentation.execStartActivity(Instrumentation.java:1512)
У меня есть 3 приложения с поддержкой UPI на моем устройстве: BHIM и PhonePe из банка Yes и iMobile из ICICI
Вот кусок кода
window.plugins.webintent.startActivity({
action: window.plugins.webintent.ACTION_VIEW,
url: upiUrl
},
function()
{
console.log("After calling startActivity");
},
function() {
console.log("Failed to open URL via Android Intent. URL: " + upiUrl)
}
);
1 ответ
Вы можете создать собственный плагин и использовать код Intent. Ниже приведен код, который я написал для моего приложения Expense Sharing Cordova. Вы можете сделать его подходящим для IONIC.
cordova.getThreadPool().execute(new Runnable() {
@Override
public void run() {
if(Build.VERSION.SDK_INT<16){
callbackContext.error("This feature is available only for Android version Jelly Bean and higher");
return;
}
try {
JSONObject jo = data.getJSONObject(0);
String upi_vpa = jo.getString("upi_vpa");
String name = jo.getString("name");
String UPI = "upi://pay?pa="+upi_vpa+"&pn="+name+"&tn=#Repay-GCF&cu=INR";
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(UPI));
Intent chooser = Intent.createChooser(intent, "Send Money with...");
cordova.getActivity().startActivityForResult(chooser, MainActivity.UPI_PAY_REQUEST, null);
}catch (JSONException e){
e.printStackTrace();
}
}
});