// 自己实现的Java层交互代码,JS调用init方法
public void init(IWebview iWebview, JSONArray paramJsonArray) {
WebView.setWebContentsDebuggingEnabled(true);
android.util.Log.d("TestLog", "调用SDK的init方法了,设置监听");
// 调用 iWebview.setWebviewclientListener 底层循环报错
iWebview.setWebviewclientListener(new CMIDCloudWebviewClientListener() );
android.util.Log.d("TestLog", "url = "+iWebview.obtainWebview().getUrl());
// 此处代码不生效
iWebview.obtainWebview().setWebViewClient(new WebViewClient(){
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Nullable
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
android.util.Log.d("CoderM", "shouldInterceptRequest");
return WebViewCacheInterceptorInst.getInstance().interceptRequest(request);
}
@Nullable
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
android.util.Log.d("CoderM", "shouldInterceptRequest url");
return WebViewCacheInterceptorInst.getInstance().interceptRequest(url);
}
});
android.util.Log.d("CoderM", "设置完成");
}
- 发布:2021-10-12 16:21
- 更新:2021-10-12 16:51
- 阅读:298
产品分类: HTML5+
HBuilderX版本号: 3.2.9
手机系统: Android
手机系统版本号: Android 10
手机厂商: 模拟器
手机机型: 模拟器
打包方式: 云端
示例代码:
操作步骤:
使用5+形式开发安卓离线SDK 有需求为增加WebView缓存
在JS与java交互代码中拿到了IWebView对象, 最新版本的SDK已经弃用了obtainWebview方法 经测试iWebview.obtainWebview().setWebViewClient(自己实现的WebViewClient类) 无效,shouldInterceptRequest方法不会触发
后自行实现继承于IDCloudWebviewClientListener的一个类,实现shouldInterceptRequest与shouldInterceptRequest
使用5+形式开发安卓离线SDK 有需求为增加WebView缓存
在JS与java交互代码中拿到了IWebView对象, 最新版本的SDK已经弃用了obtainWebview方法 经测试iWebview.obtainWebview().setWebViewClient(自己实现的WebViewClient类) 无效,shouldInterceptRequest方法不会触发
后自行实现继承于IDCloudWebviewClientListener的一个类,实现shouldInterceptRequest与shouldInterceptRequest
预期结果:
正确调用 setWebviewclientListener
正确调用 setWebviewclientListener
实际结果:
底层循环报错
底层循环报错
bug描述:
使用5+形式开发安卓离线SDK 有需求为增加WebView缓存,需要拿到webview中的请求内容
在JS与java交互代码中拿到了**IWebView**对象, 最新版本的SDK已经弃用了**obtainWebview**方法 经测试**iWebview.obtainWebview().setWebViewClient(自己实现的WebViewClient类)** 无效,shouldInterceptRequest方法不会触发
后自行实现继承于**IDCloudWebviewClientListener**的一个类,实现**shouldInterceptRequest**与**shouldInterceptRequest**
但是在调用iWebview.setWebviewclientListener方法时,底层报循环错误