Skip to content

Commit 74c9ac7

Browse files
e3ndrWanneSimon
andcommitted
Bridge: Make re-injection more consistent.
Co-Authored-By: wanne seville <29028687+WanneSimon@users.noreply.github.com>
1 parent a027fc8 commit 74c9ac7

File tree

2 files changed

+185
-188
lines changed

2 files changed

+185
-188
lines changed

bridge/src/main/java/dev/webview/webview_java/bridge/WebviewBridge.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@
2727
import java.nio.charset.StandardCharsets;
2828
import java.util.ArrayList;
2929
import java.util.HashMap;
30-
import java.util.LinkedList;
31-
import java.util.List;
3230
import java.util.Map;
3331

3432
import org.jetbrains.annotations.Nullable;
@@ -37,6 +35,7 @@
3735
import co.casterlabs.rakurai.json.Rson;
3836
import co.casterlabs.rakurai.json.element.JsonArray;
3937
import co.casterlabs.rakurai.json.element.JsonElement;
38+
import co.casterlabs.rakurai.json.element.JsonNull;
4039
import co.casterlabs.rakurai.json.element.JsonObject;
4140
import co.casterlabs.rakurai.json.element.JsonString;
4241
import dev.webview.webview_java.Webview;
@@ -66,6 +65,15 @@ public WebviewBridge(@NonNull Webview webview) {
6665

6766
switch (type) {
6867
case "INIT": {
68+
for (Map.Entry<String, JavascriptObject> entry : new ArrayList<>(this.objects.entrySet())) {
69+
if (!entry.getKey().contains(".")) {
70+
entry
71+
.getValue()
72+
.getInitLines(entry.getKey(), this)
73+
.forEach(this.webview::eval);
74+
}
75+
}
76+
this.emit("init", JsonNull.INSTANCE);
6977
this.webview.eval("console.log('[Webview-Bridge]', 'Bridge init completed.');");
7078
return null;
7179
}
@@ -100,18 +108,7 @@ public WebviewBridge(@NonNull Webview webview) {
100108
}
101109

102110
private void rebuildInitScript() {
103-
List<String> linesToExecute = new LinkedList<>();
104-
linesToExecute.add(bridgeScript);
105-
106-
for (Map.Entry<String, JavascriptObject> entry : new ArrayList<>(this.objects.entrySet())) {
107-
if (!entry.getKey().contains(".")) {
108-
linesToExecute.addAll(
109-
entry.getValue().getInitLines(entry.getKey(), this)
110-
);
111-
}
112-
}
113-
114-
this.webview.setInitScript(String.join("\n", linesToExecute));
111+
this.webview.setInitScript(bridgeScript);
115112
}
116113

117114
public void defineObject(@NonNull String name, @NonNull JavascriptObject obj) {

0 commit comments

Comments
 (0)