Permalänk
Medlem

Returnera i listener

Håller på med en cordova plugin men mina java kunskaper faller kort. Från pluginnens javascript så kallas class metoden scann() nedan. När lyssnaren fått en status så vill jag returna statusen tillbaka till javascriptet. Någon som vet hur detta går till

private String scann() {

this.fManager.getInstance().startScan(new Flic2ScanCallback() {
@Override
public void onDiscoveredAlreadyPairedButton(Flic2Button button) {

trace("onDiscoveredAlreadyPairedButton (on onDiscoveredAlreadyPairedButton) ...", "scann");
// RETURNERA NÅGOT HÄR
}

@Override
public void onDiscovered(String bdAddr) {

// RETURNERA NÅGOT HÄR

}

});

// RETURNERA LYSSNARENS MESSAGE TILL JAVASCRIPTET

}

Permalänk
Medlem

Nu har jag inte exakt koll på hur Cordova fungerar, men APIet (med Flic2ScanCallback) du använder verkar ju vara asynkront i och med att den använder callbacks.
Så på något sätt skulle du behöva skicka med en callback-funktion från JavaScript-sidan (där du anropar din scan()-metod) in till Java-koden. Då kan du sen i onDiscoveredAlreadyPairedButton och onDiscovered anropa den callback-funktion du skickat in till din scan-metod.

Gissar att du anropar din kod på ungefär följande sätt? https://cordova.apache.org/docs/ko/2.0.0/guide/plugin-develop...
Då verkar du ju kunna behålla en referens till din success-callback och anropa den flera gånger: https://ourcodeworld.com/articles/read/33/how-to-execute-a-co...-

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.