Skip to content

Commit f0d4a49

Browse files
committed
add slide customLinks support
1 parent 05f830f commit f0d4a49

4 files changed

Lines changed: 41 additions & 1 deletion

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.herewhite.sdk.domain;
2+
3+
/**
4+
* Slide 自定义链接
5+
*/
6+
public class WhiteSlideCustomLink {
7+
private int pageIndex;
8+
private String shapeId;
9+
private String link;
10+
11+
public WhiteSlideCustomLink(int pageIndex, String shapeId, String link) {
12+
this.pageIndex = pageIndex;
13+
this.shapeId = shapeId;
14+
this.link = link;
15+
}
16+
}

sdk/src/main/java/com/herewhite/sdk/domain/WindowAppParam.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,17 @@ public static WindowAppParam createSlideApp(String scenePath, Scene[] scenes, St
4444
* @return
4545
*/
4646
public static WindowAppParam createSlideApp(String taskUuid, String prefixUrl, String title) {
47+
return createSlideApp(taskUuid, prefixUrl, title, null);
48+
}
49+
50+
public static WindowAppParam createSlideApp(String taskUuid, String prefixUrl, String title, WhiteSlideCustomLink[] customLinks) {
4751
if (!prefixUrl.startsWith("http")) {
4852
throw new IllegalArgumentException("params error, check taskUuid and prefixUrl");
4953
}
5054
return new WindowAppParam(
5155
KIND_SLIDE,
5256
new ProjectorOptions(String.format("/%s/%s", taskUuid, UUID.randomUUID()), title),
53-
new ProjectorAttributes(taskUuid, prefixUrl)
57+
new ProjectorAttributes(taskUuid, prefixUrl, customLinks)
5458
);
5559
}
5660

@@ -92,6 +96,7 @@ public SlideOptions(String scenePath, String title) {
9296
this.scenePath = scenePath;
9397
this.scenes = null;
9498
}
99+
95100
}
96101

97102
private static class PlayerOptions extends Options {
@@ -122,10 +127,17 @@ public static class ProjectorAttributes extends Attributes {
122127
private final String taskUuid;
123128
@SerializedName("url")
124129
private final String prefixUrl;
130+
@SerializedName("customLinks")
131+
private final WhiteSlideCustomLink[] customLinks;
125132

126133
public ProjectorAttributes(String taskUuid, String prefixUrl) {
134+
this(taskUuid, prefixUrl, null);
135+
}
136+
137+
public ProjectorAttributes(String taskUuid, String prefixUrl, WhiteSlideCustomLink[] customLinks) {
127138
this.taskUuid = taskUuid;
128139
this.prefixUrl = prefixUrl;
140+
this.customLinks = customLinks;
129141
}
130142
}
131143

sdk/src/main/java/com/herewhite/sdk/internal/SdkJsInterfaceImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,14 @@ public void slideUrlInterrupter(Object args, CompletionHandler<String> handler)
7171
}
7272
}
7373

74+
@JavascriptInterface
75+
public void slideOpenUrl(Object args) {
76+
String url = String.valueOf(args);
77+
if (slideListener != null) {
78+
slideListener.slideOpenUrl(url);
79+
}
80+
}
81+
7482
@JavascriptInterface
7583
public void throwError(Object args) {
7684
Logger.info("WhiteSDK throwError: " + args);

sdk/src/main/java/com/herewhite/sdk/window/SlideListener.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,8 @@ default void slideUrlInterrupter(String sourceUrl, ResultCaller<String> resultCa
3535
*/
3636
default void onSlideError(SlideErrorType errorType, String errorMsg, String slideId, int slideIndex) {
3737
}
38+
39+
default void slideOpenUrl(String url) {
40+
41+
}
3842
}

0 commit comments

Comments
 (0)