Skip to content

Commit 39b1abc

Browse files
author
qinpengcheng
committed
add method disableDeepLink
1 parent 2366601 commit 39b1abc

File tree

5 files changed

+38
-3
lines changed

5 files changed

+38
-3
lines changed

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/maper/LVWebViewMethodMapper.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ public class LVWebViewMethodMapper<U extends VenvyUDWebView> extends UIViewMetho
4040
"callJS",//11
4141
"webViewCallback", // 12
4242
"setInitData", // 13
43-
"setZoomScale" // 14
43+
"setZoomScale", // 14
44+
"disableDeepLink" // 15
4445
};
4546

4647
@Override
@@ -82,6 +83,8 @@ public Varargs invoke(int code, U target, Varargs varargs) {
8283
return setInitData(target, varargs);
8384
case 14:
8485
return setZoomScale(target, varargs);
86+
case 15:
87+
return disableDeepLink(target, varargs);
8588
}
8689
return super.invoke(code, target, varargs);
8790
}
@@ -185,4 +188,10 @@ public LuaValue setZoomScale(U view, Varargs varargs) {
185188
}
186189
return LuaValue.TRUE;
187190
}
191+
192+
public LuaValue disableDeepLink(U view, Varargs varargs) {
193+
boolean disableDeepLink = LuaUtil.getBoolean(varargs, 2);
194+
view.disableDeepLink(disableDeepLink);
195+
return LuaValue.TRUE;
196+
}
188197
}

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/ud/VenvyUDWebView.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,5 +210,11 @@ public void setZoomScale(float scale) {
210210
}
211211
}
212212

213+
public void disableDeepLink(boolean disableDeepLink) {
214+
final VenvyLVWebView view = this.getView();
215+
if (view != null) {
216+
view.disableDeepLink(disableDeepLink);
217+
}
218+
}
213219
}
214220

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/view/VenvyLVWebView.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,12 @@ public void setZoomScale(float scale) {
9898
mWebView.setZoomScale(scale);
9999
}
100100

101+
public void disableDeepLink(boolean disableDeepLink) {
102+
if (mWebView != null) {
103+
mWebView.disableDeepLink(disableDeepLink);
104+
}
105+
}
106+
101107
public void setJsData(String jsData){
102108
mJsBridge.setJsData(jsData);
103109
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ public interface IVenvyWebView {
3131

3232
void setZoomScale(float scale);
3333

34+
void disableDeepLink(boolean disableDeepLink);
35+
3436
String getTitle();
3537

3638
String getUrl();

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

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public class VenvyWebView extends FrameLayout implements IVenvyWebView {
3737
private IJsParamsCallback mIJsParamsCallback;
3838
private IWebViewClient mIwebViewClient;
3939

40+
private boolean mDisableDeepLink;
41+
4042
public VenvyWebView(Context context) {
4143
super(context);
4244
init(context);
@@ -68,6 +70,10 @@ public void setWebChromeClient(IVenvyWebChromeClient webChromeClient) {
6870

6971
}
7072

73+
@Override
74+
public void disableDeepLink(boolean disableDeepLink) {
75+
mDisableDeepLink = disableDeepLink;
76+
}
7177

7278
@Override
7379
public void setZoomScale(float scale) {
@@ -200,6 +206,10 @@ private void init(Context context) {
200206
}
201207
}
202208

209+
// private DefaultWebClient.OpenOtherPageWays findOtherPageWays() {
210+
//// VenvyPreferenceHelper.getInt(App.getContext(), lvcache);
211+
// }
212+
203213
@Override
204214
public void showErrorPage(String showErrorPage) {
205215
if (mIJsParamsCallback != null) {
@@ -270,10 +280,11 @@ public void onReceivedError(WebView view, WebResourceRequest request, WebResourc
270280
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
271281
@Override
272282
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
283+
273284
if (mIwebViewClient != null) {
274285
return mIwebViewClient.shouldOverrideUrlLoading(view, request);
275286
}
276-
return super.shouldOverrideUrlLoading(view, request);
287+
return !mDisableDeepLink && super.shouldOverrideUrlLoading(view, request);
277288
}
278289

279290
@Nullable
@@ -291,10 +302,11 @@ public boolean shouldOverrideUrlLoading(final WebView view, String url) {
291302
//优酷想唤起自己应用播放该视频 , 下面拦截地址返回 true 则会在应用内 H5 播放 ,禁止优酷唤起播放该视频, 如果返回 false , DefaultWebClient 会根据intent 协议处理 该地址 , 首先匹配该应用存不存在 ,如果存在 , 唤起该应用播放 , 如果不存在 , 则跳到应用市场下载该应用 .
292303
/*else if (isAlipay(view, mUrl)) //1.2.5开始不用调用该方法了 ,只要引入支付宝sdk即可 , DefaultWebClient 默认会处理相应url调起支付宝
293304
return true;*/
305+
294306
if (mIwebViewClient != null) {
295307
return mIwebViewClient.shouldOverrideUrlLoading(view, url);
296308
}
297-
return super.shouldOverrideUrlLoading(view, url);
309+
return !mDisableDeepLink && super.shouldOverrideUrlLoading(view, url);
298310
}
299311

300312
@Override

0 commit comments

Comments
 (0)