Releases: youlookwhat/ByWebView
Releases · youlookwhat/ByWebView
1.2.2
处理 JavaScript 中三种消息框:警告框、确认框、提示框。
在OnTitleProgressCallback
里增加了onJsAlert
、onJsConfirm
、onJsPrompt
,默认已实现,也可手动处理:
/**
* JavaScript alert 警告框
* 默认返回false,使用代码里的默认处理
* 如果要手动处理,需要返回true!且需要执行 result.confirm();
*/
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return false;
}
/**
* JavaScript confirm 确认框
* 默认返回false,使用代码里的默认处理
* 如果要手动处理,需要返回true!且需要执行 result.confirm();
*/
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
return false;
}
/**
* JavaScript prompt 提示框
* 默认返回false,使用代码里的默认处理
* 如果要手动处理,需要返回true!且需要执行 result.confirm();
*/
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
return false;
}
1.2.1
可手动处理视频全屏播放时的横竖屏:
在OnTitleProgressCallback
里增加了onHandleScreenOrientation(boolean isShow)
/**
* 全屏显示时处理横竖屏。
* 默认返回false,全屏时为横屏,全屏还原后为竖屏
* 如果要手动处理,需要返回true!
*
* @param isShow 是否显示了全屏视频 ture点击了全屏显示,false全屏视频还原
*/
public boolean onHandleScreenOrientation(boolean isShow) {
return false;
}
1.2.0
- 1.升级到AndroidX
- 2.targetSdkVersion 由28升级到29
两处升级对项目不影响~
1.1.6
增加可以直接获取ByWebView的方法 get()
,避免获取ByWebView一定要loadUrl()的情况
/**
* 直接获取ByWebView,避免一定要调用loadUrl()才能获取ByWebView的情况
*/
public ByWebView get() {
return new ByWebView(this);
}
附loadUrl()方法:
/**
* loadUrl()并获取ByWebView
*/
public ByWebView loadUrl(String url) {
ByWebView byWebView = get();
byWebView.loadUrl(url);
return byWebView;
}
1.1.5
fix 修复h5页面无故竖屏或横屏的情况 #35
/**
* 修复可能部分h5无故竖屏问题,如果h5里有视频全屏播放请禁用
*/
public void setFixScreenPortrait(boolean fixScreenPortrait) {
if (mWebChromeClient != null) {
mWebChromeClient.setFixScreenPortrait(fixScreenPortrait);
}
}
/**
* 修复可能部分h5无故横屏问题,如果h5里有视频全屏播放请禁用
*/
public void setFixScreenLandscape(boolean fixScreenLandscape) {
if (mWebChromeClient != null) {
mWebChromeClient.setFixScreenLandscape(fixScreenLandscape);
}
}
1.1.4
1.1.3
删除request.grant(request.getResources());
由于: https://m.iqiyi.com/v_u7ik3ppd6g.html#vfrm=30-26-15-7 ,第一次加载会导致闪退
1.1.2
- 增加 onPageStarted()
- 增加 onReceivedSslError(),返回true表示自己处理的。
1.1.1
1.1.0
去掉 setCustomWebViewLayout
。
通过setCustomWebView()
设置自定义View。
与ToolBar联动示例:
CoordinatorLayout container = findViewById(R.id.coordinatorLayout);
CoordinatorLayout.LayoutParams lp = new CoordinatorLayout.LayoutParams(-1, -1);
// 设置behavior属性 和 ToolBar属性里设置 layout_scrollFlags="scroll|enterAlways"
lp.setBehavior(new AppBarLayout.ScrollingViewBehavior());
NestedScrollWebView nestedScrollWebView = new NestedScrollWebView(this);
byWebView = ByWebView
.with(this)
.setWebParent(container, 1, lp)
.setCustomWebView(nestedScrollWebView)// 设置自定义WebView
.useWebProgress(ContextCompat.getColor(this, R.color.coloRed))
.setOnTitleProgressCallback(onTitleProgressCallback)
.setOnByWebClientCallback(onByWebClientCallback)
.addJavascriptInterface("injectedObject", new MyJavascriptInterface(this))
.loadUrl(mUrl);
具体可见Demo:CoordinatorWebActivity