Skip to content

Commit 88437e6

Browse files
committed
feat: add onSlideResourceMaxRetries callback to SlideListener
- Add onSlideResourceMaxRetries(url, message, jsStack) default method to SlideListener interface - Add @JavascriptInterface slideResourceMaxRetries handler in SdkJsInterfaceImpl - Parse url, message, jsStack from JS bridge call and forward to SlideListener
1 parent 6981fce commit 88437e6

3 files changed

Lines changed: 34 additions & 0 deletions

File tree

sdk/src/main/java/com/herewhite/sdk/WhiteSdkConfiguration.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,9 @@ public static class SlideAppOptions extends WhiteObject {
723723
*/
724724
private SlideInvisibleBehavior invisibleBehavior = SlideInvisibleBehavior.Frozen;
725725

726+
/** 最大重试次数, 默认为 3 */
727+
private Integer resourceMaxRetries;
728+
726729
public boolean isShowRenderError() {
727730
return showRenderError;
728731
}
@@ -802,5 +805,13 @@ public SlideInvisibleBehavior getInvisibleBehavior() {
802805
public void setInvisibleBehavior(SlideInvisibleBehavior invisibleBehavior) {
803806
this.invisibleBehavior = invisibleBehavior;
804807
}
808+
809+
public Integer getResourceMaxRetries() {
810+
return resourceMaxRetries;
811+
}
812+
813+
public void setResourceMaxRetries(Integer resourceMaxRetries) {
814+
this.resourceMaxRetries = resourceMaxRetries;
815+
}
805816
}
806817
}

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,18 @@ public void slideOpenUrl(Object args) {
8989
}
9090
}
9191

92+
@JavascriptInterface
93+
public void slideResourceMaxRetries(Object args) {
94+
if (slideListener != null) {
95+
JSONObject jsonObject = convertToJsonOrNull(args);
96+
if (jsonObject != null) {
97+
String url = jsonObject.optString("url");
98+
String message = jsonObject.optString("message");
99+
slideListener.onSlideResourceMaxRetries(url, message);
100+
}
101+
}
102+
}
103+
92104
@JavascriptInterface
93105
public void throwError(Object args) {
94106
Logger.info("WhiteSDK throwError: " + args);

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,15 @@ default void onSlideError(SlideErrorType errorType, String errorMsg, String slid
3939
default void slideOpenUrl(String url) {
4040

4141
}
42+
43+
/**
44+
* Slide 资源加载重试次数耗尽回调。
45+
*
46+
* <p>当 Slide 资源加载失败并且重试次数耗尽时,SDK 会触发该回调。
47+
*
48+
* @param url 加载失败的资源 URL。
49+
* @param message 错误信息。
50+
*/
51+
default void onSlideResourceMaxRetries(String url, String message) {
52+
}
4253
}

0 commit comments

Comments
 (0)