![]() |
1
132
从 source code :
使用WebChromeClient可以处理JavaScript对话框、Favicons、标题和进度。看看这个例子: Adding alert() support to a WebView
乍一看,差异太多了
WebViewClient
和;
WebChromeClient
. 但是,基本上:如果您正在开发一个不需要太多功能但呈现HTML的WebView,那么您可以使用
大多数时候,如果你不想担心这些事情…你可以这样做:
而且你的WebView(理论上)将实现所有功能(作为Android本机浏览器)。 |
![]() |
2
47
我觉得这个问题需要更多的细节。我的答案来自于Android编程,书呆子牧场指南(第二版)。 默认情况下 ,WebView中的javascript已关闭。你并不总是需要打开它,但对于某些应用程序,可能确实需要它。
加载URL必须在配置WebView之后完成,所以最后要这样做。在此之前,通过调用
之后,配置WebViewClient。WebViewClient是一个事件接口。通过提供自己的WebViewClient实现,您可以响应呈现事件。例如,您可以检测渲染器何时开始从特定的URL加载图像,或者决定是否向服务器重新提交POST请求。
WebVIEW客户端
有许多方法可以重写,其中大多数方法您将无法处理。但是,您确实需要替换默认的WebViewClient实现
与前面一样,默认实现使用URL触发一个隐式意图。但现在,这将是一个严重的问题。一些Web应用程序所做的第一件事是将您重定向到该网站的移动版本。对于默认的WebViewClient,这意味着您将立即被发送到用户的默认Web浏览器。这正是你想要避免的。 修复很简单,只需覆盖默认实现并返回false。 使用WebChromeClient来美化事物 由于您要花时间创建自己的WebView,请添加一个进度条并使用加载页面的标题更新工具栏的副标题,让___
要连接ProgressBar,您将使用WebView上的第二个回调:
WebViewClient是一个响应渲染事件的接口;WebChromeClient是一个事件接口,用于响应应更改浏览器周围Chrome元素的事件。这包括javascript警报、favicons,当然还有加载进度和当前页面标题的更新。
把它挂起来
|
|
User210282 · 从onpagefinished方法获取单个主机名 11 年前 |