Skip to content

Commit 43aaf96

Browse files
author
lucas
committed
fix H5小程序没有隐藏导航栏的Bug; 优化webView 通过jsBridge close容器的逻辑
1 parent 95798d4 commit 43aaf96

File tree

4 files changed

+40
-9
lines changed

4 files changed

+40
-9
lines changed

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoProgramTypeBView.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,12 @@ public void start(@NonNull String appletId, String data, int orientationType, bo
198198
*/
199199
public void startH5(String url, String developerUserId) {
200200
currentH5Program.addDeveloperUserIdToJsBridge(developerUserId);
201-
url = "http://cytroncdn.videojj.com/pages/jijiMall/dev/index.html#debug";
201+
currentH5Program.setWebViewCloseListener(new VideoWebToolBarView.WebViewCloseListener() {
202+
@Override
203+
public void onClose(String appletId) {
204+
closeH5(appletId);
205+
}
206+
});
202207
currentH5Program.openLink(url);
203208
}
204209

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoServiceToolsModel.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,13 @@ public void requestFinish(Request request, IResponse response) {
8787
final JSONObject decryptData = new JSONObject(jsonStr);
8888

8989
final JSONObject miniAppInfoObj = decryptData.optJSONObject("miniAppInfo");
90-
90+
if(miniAppInfoObj == null){
91+
VenvyLog.e("miniAppInfoObj is null");
92+
if (callback != null) {
93+
callback.downError(new NullPointerException("miniAppInfoObj is null"));
94+
}
95+
return;
96+
}
9197
final String miniAppId = miniAppInfoObj.optString("miniAppId");
9298
final String template = miniAppInfoObj.optString("template");
9399
JSONArray fileListArray = miniAppInfoObj.optJSONArray("luaList");

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoWebToolBarView.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public class VideoWebToolBarView extends BaseVideoVisionView {
4646

4747
private JsBridge jsBridge;
4848

49+
4950
public VideoWebToolBarView(Context context) {
5051
super(context);
5152
init();
@@ -272,6 +273,19 @@ public void addDeveloperUserIdToJsBridge(String developerUserId){
272273
}
273274
}
274275

276+
public void setWebViewCloseListener(final WebViewCloseListener closeListener){
277+
if(jsBridge != null){
278+
jsBridge.setWebViewCloseListener(new JsBridge.WebViewCloseListener() {
279+
@Override
280+
public void onClose(CloseType actionType) {
281+
if(closeListener != null){
282+
closeListener.onClose(appletId);
283+
}
284+
}
285+
});
286+
}
287+
}
288+
275289
public void reload(String data) {
276290
if (jsBridge != null) {
277291
jsBridge.setJsData(data);
@@ -289,4 +303,8 @@ protected void onDetachedFromWindow() {
289303
removeView(webView);
290304
}
291305
}
306+
307+
public interface WebViewCloseListener{
308+
void onClose(String appletId);
309+
}
292310
}

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VisionProgramConfigModel.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,14 @@ public void requestFinish(Request request, IResponse response) {
143143
final String developerUserId = miniAppInfoObj.optString("developerUserId");
144144
JSONArray fileListArray = miniAppInfoObj.optJSONArray("luaList");
145145

146+
String resCode = App.isIsDevMode() ? "-1" : decryptData.optString("resCode"); // 应答码 00-成功 01-失败
147+
JSONObject displayObj = decryptData.optJSONObject("display");
148+
if (displayObj != null) {
149+
final String nativeTitle = displayObj.optString("navTitle");
150+
nvgShow = displayObj.optBoolean("navShow", true);
151+
updateVisionTitle(nativeTitle, nvgShow);
152+
}
153+
146154
if (isH5Type) {
147155
final String h5Url = decryptData.optString("h5Url");
148156
if (TextUtils.isEmpty(h5Url)) {
@@ -157,13 +165,7 @@ public void requestFinish(Request request, IResponse response) {
157165
return;
158166
}
159167

160-
String resCode = App.isIsDevMode() ? "-1" : decryptData.optString("resCode"); // 应答码 00-成功 01-失败
161-
JSONObject displayObj = decryptData.optJSONObject("display");
162-
if (displayObj != null) {
163-
final String nativeTitle = displayObj.optString("navTitle");
164-
nvgShow = displayObj.optBoolean("navShow", true);
165-
updateVisionTitle(nativeTitle, nvgShow);
166-
}
168+
167169

168170
if (resCode.equalsIgnoreCase("00")) {
169171
//LuaArray --> JavaBean

0 commit comments

Comments
 (0)