Page History
...
Skal der implementeres nye events kræver det nye releases af nap-typescript-sdket.
Bro
NAP bridge er et simpelt interface med en send funktion og en callback handle.
Code Block | ||
---|---|---|
| ||
interface NAPHostBridge {
setCallback: (handler: { handle: (message: string) => void }) => void;
send: (message: string) => void;
} |
Et eksempel hvordan denne injectes i nap-java-host:
Code Block | ||
---|---|---|
| ||
package dk.sds.nap.integrations;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import dk.sds.nap.scenes.WebPane;
import netscape.javascript.JSObject;
public class EmbeddedJavascriptIntegration extends AbstractBaseIntegration implements Integration {
private static ObjectMapper objectMapper = new ObjectMapper();
public NAPBridge bridge = new NAPBridge();
public EmbeddedJavascriptIntegration(final WebPane webPane) {
webPane.addInterface("NAP", bridge);
}
@Override
public void send(NAPEvent event) {
System.out.println("napevent send: " + event.getType());
System.out.println("payload: " + event.getPayload());
final String eventRawJSONString;
try {
eventRawJSONString = objectMapper.writeValueAsString(event);
this.bridge.bridge.call("handle", eventRawJSONString);
} catch (JsonProcessingException jsonProcessingException) {
System.out.println(this.getClass().getName()+ " " + jsonProcessingException);
}
}
public class NAPBridge {
private JSObject bridge;
public void send(String rawEventString) {
try {
System.out.println(this.getClass().getName() + " send(): " + rawEventString);
NAPEvent event = objectMapper.readValue(rawEventString, NAPEvent.class);
notifyListeners(event);
} catch (IOException ioException) {
System.out.println(this.getClass().getName() + " " + ioException);
}
}
public void setCallback(JSObject bridge) {
System.out.println(this.getClass().getName() + " setCallBack(): " + bridge);
this.bridge = bridge;
}
}
} |
Nap-typescript-sdk har en function der hedder createNAP derefter sørger for at finde en reference til denne bridge og initialisere besked strømmene. Nærmere beskrivelse mangler. Møde skal afholdes for at afklare dokumentationskravene or dette.
Message-streams
Nærmere beskrivelse mangler.
...