Skip to content

Commit 60deaa7

Browse files
author
lucas
committed
fix webview 白屏的问题
1 parent 74b0917 commit 60deaa7

File tree

5 files changed

+43
-15
lines changed

5 files changed

+43
-15
lines changed

VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/common/webview/IVenvyWebView.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,8 @@ public interface IVenvyWebView {
4242
void updateNaviTitle(String updateNaviTitle);
4343

4444
void openApplet(String openApplet);
45+
46+
int getWebViewX();
47+
48+
int getWebViewY();
4549
}

VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/common/webview/JsBridge.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,16 @@ public void commonData(String jsParams) {
104104
float width = height / 375.0f * 230;
105105
JSONObject obj = new JSONObject();
106106
JSONObject objSize = new JSONObject();
107+
JSONObject xyObj = new JSONObject();
107108
try {
108109
objSize.put("width", width);
109110
objSize.put("height", height);
110111
obj.put("common", CommonParam.getCommonParamJson(mPlatform.getPlatformInfo().getAppKey()));
111112
obj.put("size", objSize);
113+
114+
xyObj.put("x", mVenvyWebView.getWebViewX());
115+
xyObj.put("y", mVenvyWebView.getWebViewY());
116+
obj.put("origin", xyObj);
112117
obj.put("secret", mPlatform.getPlatformInfo().getAppSecret());
113118
} catch (Exception e) {
114119

@@ -134,7 +139,7 @@ public void openUrl(String jsParams) {
134139
}
135140
String adID = VenvyMD5Util.MD5(actionString);
136141
WidgetInfo.WidgetActionType widgetActionType = WidgetInfo.WidgetActionType.findTypeById(1);
137-
WidgetInfo widgetInfo = new WidgetInfo.Builder()
142+
final WidgetInfo widgetInfo = new WidgetInfo.Builder()
138143
.setAdId(adID)
139144
.setWidgetActionType(widgetActionType)
140145
.setUrl(actionString)
@@ -144,7 +149,12 @@ public void openUrl(String jsParams) {
144149
.setSelfLink(selfLink)
145150
.build();
146151
if (mPlatform.getWidgetClickListener() != null) {
147-
mPlatform.getWidgetClickListener().onClick(widgetInfo);
152+
VenvyUIUtil.runOnUIThread(new Runnable() {
153+
@Override
154+
public void run() {
155+
mPlatform.getWidgetClickListener().onClick(widgetInfo);
156+
}
157+
});
148158
}
149159
JSONObject jsonObject = new JSONObject();
150160
if (TextUtils.isEmpty(deepLink)) {
@@ -339,7 +349,7 @@ public void getStorageData(final String jsParams) {
339349
VenvyUIUtil.runOnUIThread(new Runnable() {
340350
@Override
341351
public void run() {
342-
callJsFunction(VenvyPreferenceHelper.getString(mContext, mDeveloperUserId, key, ""),jsParams);
352+
callJsFunction(VenvyPreferenceHelper.getString(mContext, mDeveloperUserId, key, ""), jsParams);
343353
}
344354
});
345355

VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/common/webview/VenvyWebView.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import android.support.annotation.RequiresApi;
1010
import android.text.TextUtils;
1111
import android.util.AttributeSet;
12+
import android.view.View;
1213
import android.view.ViewGroup;
1314
import android.webkit.SslErrorHandler;
1415
import android.webkit.ValueCallback;
@@ -132,6 +133,7 @@ public String getUrl() {
132133

133134
@Override
134135
public void loadUrl(String url) {
136+
135137
if (mAgentWeb != null && !TextUtils.isEmpty(url)) {
136138
mAgentWeb.getUrlLoader().loadUrl(url);
137139
}
@@ -181,6 +183,8 @@ private void init(Context context) {
181183
.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)//打开其他应用时,弹窗咨询用户是否前往其他应用
182184
.interceptUnkownUrl() //拦截找不到相关页面的Scheme
183185
.createAgentWeb().ready().get();
186+
187+
mAgentWeb.getWebCreator().getWebView().setLayerType(View.LAYER_TYPE_SOFTWARE,null);
184188
}
185189
}
186190

@@ -205,6 +209,16 @@ public void openApplet(String openApplet) {
205209
}
206210
}
207211

212+
@Override
213+
public int getWebViewX() {
214+
return (int) getX();
215+
}
216+
217+
@Override
218+
public int getWebViewY() {
219+
return (int) getY();
220+
}
221+
208222
public void setJsParamsCallback(IJsParamsCallback callback) {
209223
this.mIJsParamsCallback = callback;
210224
}
@@ -320,4 +334,5 @@ public void onReceivedError(WebView view, int errorCode, String description, Str
320334
// Log.i(TAG, "onReceivedError:" + errorCode + " description:" + description + " errorResponse:" + failingUrl);
321335
}
322336
};
337+
323338
}

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

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
import cn.com.venvy.common.webview.JsBridge;
3131
import cn.com.venvy.common.webview.VenvyWebView;
3232

33-
import static cn.com.venvy.common.webview.JsBridge.WebViewCloseListener.CloseType.*;
34-
3533
/**
3634
* Created by Lucas on 2019/8/30.
3735
*/
@@ -158,15 +156,15 @@ public void openApplet(String openApplet) {
158156
String appletId = jsonObject.getString("appletId");
159157
String screenType = jsonObject.getString("screenType");
160158
String appType = jsonObject.getString("appType");
161-
String data = jsonObject.getString("data");
162159

163160
// 拉起一个对应的容器
164161
Bundle bundle = new Bundle();
165162
bundle.putString(VenvyObservableTarget.KEY_APPLETS_ID, appletId);
166163
bundle.putString(VenvyObservableTarget.KEY_ORIENTATION_TYPE, screenType);
167164
bundle.putString(VenvyObservableTarget.Constant.CONSTANT_APP_TYPE, appType);
168-
if (!TextUtils.isEmpty(data)) {
169-
bundle.putString(VenvyObservableTarget.Constant.CONSTANT_DATA, data);
165+
166+
if (jsonObject.has("data")) {
167+
bundle.putString(VenvyObservableTarget.Constant.CONSTANT_DATA, jsonObject.getString("data"));
170168
}
171169
ObservableManager.getDefaultObserable().sendToTarget(VenvyObservableTarget.TAG_LAUNCH_VISION_PROGRAM, bundle);
172170

@@ -259,26 +257,27 @@ public void freshProgram(String appletId) {
259257

260258
public void openLink(final String url) {
261259
VenvyLog.d("openLink : " + url);
260+
262261
webView.setVisibility(VISIBLE);
263262
loadingContent.setVisibility(GONE);
264263
webView.loadUrl(url);
265264
webView.setTag(url);
266265
cancelLoadingAnimation();
267266
}
268267

269-
public void addDeveloperUserIdToJsBridge(String developerUserId){
270-
if(jsBridge != null){
268+
public void addDeveloperUserIdToJsBridge(String developerUserId) {
269+
if (jsBridge != null) {
271270
jsBridge.setDeveloperUserId(developerUserId);
272271
webView.setJsBridge(jsBridge);
273272
}
274273
}
275274

276-
public void setWebViewCloseListener(final WebViewCloseListener closeListener){
277-
if(jsBridge != null){
275+
public void setWebViewCloseListener(final WebViewCloseListener closeListener) {
276+
if (jsBridge != null) {
278277
jsBridge.setWebViewCloseListener(new JsBridge.WebViewCloseListener() {
279278
@Override
280279
public void onClose(CloseType actionType) {
281-
if(closeListener != null){
280+
if (closeListener != null) {
282281
closeListener.onClose(appletId);
283282
}
284283
}
@@ -304,7 +303,7 @@ protected void onDetachedFromWindow() {
304303
}
305304
}
306305

307-
public interface WebViewCloseListener{
306+
public interface WebViewCloseListener {
308307
void onClose(String appletId);
309308
}
310309
}

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/view/VideoOSLuaView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ private void runLuaFile(final LuaView luaView, final String luaName, final Objec
212212
if (TextUtils.isEmpty(luaName)) {
213213
return;
214214
}
215-
// if (luaName.contains("os_video_mode_desktop_hotspot.lua")) {
215+
// if (luaName.contains("os_video_figureStarList_hotspot.lua")) {
216216
// runLua(luaView, luaName, valueData);
217217
// return;
218218
// }

0 commit comments

Comments
 (0)