Я разработал один пользовательский плагин Cordova.Плагин работает хорошо, но функция обратного вызова вызывается перед выполнением метода run.Он показывает «недопустимое действие».
Я хочу вызвать метод обратного вызова в случае успешного завершения метода run.Ниже мои файлы
1.файл провайдера (ts file) в ионном приложении
@Cordova({
successIndex : 1,
errorIndex : 2,
observable: true
})
triggerWid(options: any): Observable<any> {
return;
}
2.метод вызова плагина из файла ts
triggerWidget() {
const watch = this.payment.triggerWid({
_sMessage: "Hello World"
}).subscribe((result) => {
alert(JSON.stringify(result, undefined, 2));
}, (err) => {
alert(JSON.stringify(err, undefined, 2));
});
3.файл плагина js
module.exports.triggerWid = function(arg0, success, error) {
exec(success, error, 'TestPayment', 'triggerWid', [arg0]);
}
4.Java-файл
if (action.equals("triggerWid")) {
String message = args.getString(0);
this.triggerWid(message, callbackContext);
}
Я вызываю метод triggerWid из того же файла.
private void triggerWid(String message, CallbackContext callbackContext) {
Context context = this.cordova.getActivity().getApplicationContext();
WidgetBuilder widgetBuilder = new WidgetBuilder()
.setApiKey(LIQUIDPAY_API_KEY)
.setApiSecret(LIQUIDPAY_SECRET_KEY)
.setApplicationContext(context)
.build();
try {
widgetBuilder.run(new WidgetInterface() {
@Override
public void onExit() {
// result_status.setTextColor(Color.BLACK);
// result_status.setText(R.string.done);
CALLBACK_MESSAGE = "Done";
callbackContext.success("Done");
new Utils().showToast(context, "Widget Triggered");
}
});
} catch (IllegalStateException e) {
Log.e("WIDGET ACCESS", e.getMessage());
CALLBACK_MESSAGE = e.getMessage();
callbackContext.error("Error");
}
// callbackContext.success(CALLBACK_MESSAGE);
}
В приведенной выше функции я получаю недопустимое действие.Но если я раскомментирую callbackContext.success (CALLBACK_MESSAGE), функция обратного вызова success получит выполнение, но покажет результат после двойного вызова функции.
То, что я хочу, я хочу вызывать метод callback успеха только после onExit
метода.
Это достижимо?