2023年11月28日发(作者:)
详细了解WebChromeClient源码各⽅法使⽤说明
摘要:
有⼏个定制功能⽅便添加开发者期待的属性。
1、创建并设置⼀个⼦类,该⼦类在想要改变浏览器的UI界⾯时回调对应的⽅法,⽐如,进度条的更新和JS弹窗
2、创建并设置⼀个⼦类,该⼦类在改变⽹页内容的呈现⽅式时回调对应的⽅法,⽐如,⽹页加载错误或提交表单,同时可以通过回调shouldOverrideUrlLoading()
⽅法拦截URL加载。
3、修改WebSettings,配置WebView各种属性,⽐如:开启JavaScript脚本功能,setJavaScripeEnabled(true)
4、调⽤addJavascriptInterface(Object,String)⽅法将Java对象注⼊WebView加载的页⾯,H5开发者通过JavaScript脚本访问Java对象提供的⽅法或属性。
⼀、详细分析WebChromeClient个回调⽅法
这是内部⼀个接⼝,由主机应⽤程序通知当前⽹页是否隐藏
1. public void onShowCustomView(View view, CustomViewCallback callback) {};
6.通知主机应⽤程序当前页⾯进⼊全屏模式,在全屏模式下的主机应⽤程序必须包含⽹页内容:video或其他特定的HTML标签,与是否视频全屏播放有关的回调⽅法
4. pdater quotaUpdater) {
5. // This default implementation passes the current quota back to WebCore.
6. // WebCore will interpret this that new quota was declined.
25.当没有正在播放视频时,video标签显⽰“提⽰”图⽚,使⽤的这个“提⽰”图⽚可以被video标签的属性指定。如果缺少该属性,使⽤默认“提⽰”图⽚,这个⽅
法运⾏ChromeClient提供默认的图⽚。
1. public View getVideoLoadingProgressView() {
2. return null;
27.
28. public abstract String getFilenameHint();
29.
30.
31. public abstract Intent createIntent();
32. }
⼆、WebChromeClient常见使⽤实例
6. egory(RY_OPENABLE);
7. e("*/*");
8. startActivityForResult(Chooser(intent, "选择⽂件"),
9. REQUEST_FILE_PICKER);
3. vityResult(requestCode, resultCode, intent);
4. if (requestCode == REQUEST_FILE_PICKER && mFilePathCallback != null) {
5. Uri result = intent == null || resultCode != RESULT_OK ? null
6. : a();
发布评论