WebView翻译的API大全

前言

好久没在CSDN写博客了,最近有时间把一些之前项目期总结的东西,传上来给大家分享,这是本人花了3天独自翻译的.希望能够帮助,同时也希望大家可以指明错误.博主会更努力,那下面紧接着是WebView的一个小翻译系列.

导航

WebView的介绍
http://blog.csdn.net/l540675759/article/details/54709676

WebView翻译的API大全
http://blog.csdn.net/l540675759/article/details/54709664

WebView设置之WebViewClient
http://blog.csdn.net/l540675759/article/details/54709687

WebView设置之WebChromeClient
http://blog.csdn.net/l540675759/article/details/54709680

WebView设置之WebSettings
http://blog.csdn.net/l540675759/article/details/54709690

WebView介绍

addJavaScriptInterface(Object o,String name)
addJavaScriptInterface(Object o,String name)

class JsObject{
    @JavaScriptInterface
    public String toString{xxxxx}
}

使用方法:webView.addJavaScriptInterface(new JsObject(),"xxx")

参数:Object o 可被Js控制的对象,Objectnull无反应.
    String Js可调用的标识.

注意:在低版本可能会存在安全风险.
CanGoBack() 返回值:boolean
得到当前WebView是否有可以回退的历史记录.
CanGoBackOnForward(int i) 返回值:boolean
当前页面是否能够满足所需页数情况下,能够移动.
CanGoForward() 返回值:boolean
当前页面是否可以向前移动.
ClearCache(boolean includeDisFiles)
清除WebView的缓存资源,这将为所有WebView,清除缓存使用.如果为false,则仅清理内存缓存,如果为true,则将会清除本地缓存.
ClearClientCertPreferences(Runnable onCleaned)
(1)清除所有当前客户端正在进行/取消的回调.

(2)当接收到广播,ACTION_STORAGE_CHANGED.

(3)所有应用程序的webView共享的这个证书.

参数:onCleared的子线程,如果对该回调不感兴趣直接传null,就将会调用主线程来清除.
ClearFormData()
删除自动删除的表单信息
注意它并不会删除webView的储存信息,只会删除自动弹出的信息.
ClearHistory()
告诉WebView清除前进和后退的历史记录.
clearMatches()
清除当前WebView界面,使用搜索(findAllSync(String))的查找匹配的字符串的高亮状态.
clearSslPreferences()
清除SSL表单中,当前进程中错误的SSL证书.
CopyBackForwardList()
返回对象:WebBackForwardList

WebBackForwardList:返回的是当前WebView的历史数据集合对象(队列),注意返回的列表是被当前拷贝的,不同时刻会返回不同的状态.
createPrintDocumentAdapter()
返回对象:PrintDocumentAdapter 
参数:String documentName 打印文件的名称

创建一个当WebView页面已经定义过所有元素的打印文件的适配器.
 createWebMessageChannel()
返回对象:WebMessagePort[]
创建HTML5与本地的程序的端口,方便发送信息以及其它行为的交互,可以通过返回对象向HTML端发送交互信息.
destory()
生命周期的销毁,销毁当前WebView的视图,这个方法应该在WebView视图被系统移除后调用.
documentHasImages()
判断下发的回调是否包含图片的信息
如果含有图片         Message.arg1 = 1
如果不含有图片       Message.arg1 = 0
enableSlowWholeDocumentDraw()
(1)只针对目标版本"L",WebView有一个新的默认行为,去有选择的展示并绘制HTML文档,这样可以减小内存并且提高性能.

(2)这些情况对于开发人员是公开的,然而某些情况需要禁用.

当使用ondraw()方法去绘制独立的对象,或者绘制可以页面以外的区域.

当App使用capturePicture()去获得一个非常大的HTML文档.

注意:该方法对于HTML有一个显著的性能成本,这种方法在使用的时候应该在创建WebView之前.

evaluateJavaScript()
void evaluateJavaScript (String script ,ValueCallBack<String> resultCallBack)

专门用于异步调用JavaScript方法,并且可以获得一个回调.

String scrpit 是addJavaScriptInterface 传递的对象.
findAddress()
发现第一个需要搜索的字段,目前只有美国的地理位置可以被发现.
findAllSync()
搜索字段,并全局高亮显示搜索结果,连续调用,将取消搜索请求.
findFocus()
返回对象: View
找到当前WebView视图层,含有焦点的对象.
findNext()
查询下一个已经"高亮显示"的字段(已经执行过findAllAyns)如果已经clearMatches,那么这个函数已经无效.
getCertficate()
获得顶层视图的SSL证书,如果得到的证书为null,则说明当前网站是不安全的.
getContentHeight()
返回对象: int
获得当前HTML视图内容的高度
getFavicon()
返回值:Bitmap
得到当前页面的图标(标识),注意:此方法知道WebViewClient的onReceivedIcon之后才有返回对象.
getHandler()
返回值:Handler
得到当前ViewHandler对象,这个Handler能够发送对象和主线程交互.
getHitTestResult()
返回值:HitTestResult
获得当前触摸事件的反馈信息.
getHttpAuthUsernamePassword()
参数:String host,String realm
返回对象:String[]
获取host和realm的身份验证信息,返回NULL意味着未发现.
getOriginalUrl()
得到原始界面的URL,返回字段可能与WebViewClient.onPageStarted不同,因为URL随时在改变.
getProgress()
返回值 int progress
得到当前页面正在加载的百分比
getSettings()
返回值:WebSetting
获得用户控制WebViewWebSetting对象.
getTitle()
返回值:String
获得当前WebView内容的标题,必须得在onReceiverTitle之后才能使用.
getUrl()
返回值:String 
获得当前页面的URL,并且在onPageStarted中拿到的Url不一定会与当前一致,因为Started之后,Url虽然被加载,但是页面可能没有被加载出来.
goBack()
从当前WebView的加载中进行后退操作.
goBackOrForward(int step)
从历史记录中,前进或后退操作,Step表示步数.
goForward()
从历史记录,进行前进操作
invokeZoomPicker()
调用webView的图形变焦器,这个变焦后的图片出现在屏幕的样子取决变焦的等级.
isPrivateBrowsingEnabled
返回值:boolean
获得当前的webView上面是否使用了隐私保护.
loadData(String data,String mineType,String encoding)
data : 一串给定的格式的编码
mineType : MIME的类型 e.g:text/html
encoding : data的编码格式
将制定的URL加载到webView上

注意:
(1)JavaScript基于源URL,在loadData方法并不适用,需要在loadDataWithBaseURL()方法,并且支付HTTP(s).

(2)如果编码格式是Base64,那么参数必须也是Base64格式,如果使用超出8位,请使用ASCII编码.

特殊符号表示:
# ---------> %23
% ---------> %25
\ ---------> %27
? ---------> %3f
loadDataWithBaseURL(String baseUrl,String data,String mimeType,String encoding,String historyUrl)
参数:
(1)将给定数据加载到BaseUrl上,防止JSP的同源策略.
注意:
这种方式只能访问本地设备文件中指定Scheme:

包括"https","http","ftp","about" or "JavaScript"

如果loadData()操作基于URL在loadDataWithBaseURL,那么就相当于无视history list数据,并且URL属于数据一部分.
loadUrl(String url)
加载一个Url对象
loadUrl(String url ,Map
加载一个Url对象,并且添加请求头信息.
onPragEvent()
处理WebView上的拖动事件
onGenericMotionEvent()
通用的事件处理和onTouchEvent()差不多.
onProvideVirtualStructure(VirtualStructure structure)
详情请见WebView.VisualStateCallBack类.
pageDown(boolean bottom)
滑动文本至WebView一半区域的大小(向下)
参数:bottom   确认当前页面是否滑动到页面底部
返回值: 当前页面是否在滑动
pageUp(boolean top)
滑动文本至WebView一半区域的大小(向上)
参数:top 确认当前页面是否滑动到页面顶部.
返回值:当前页面是否正在滑动.
pauseTimers()
暂停所有布局,参数和JSP的包括WebView的计时器,注意,这是个全局请求不局限在webView中,可能会导致程序停止.
PostUrl()
装在Data 通过Post方法发送到Url中.
注意:
如果Url不是一个网络的Url,那么就会执行loadUrl()方法.
requestFocusNodeHref(Message hrefMessage)
请求当前的锚点(触摸点)的Image或其他,如果Message = null 立刻返回.
                            -----Url
hrefMsg依附于请求的结果 :   -----title
                            -----src
requestImageRef (Message msg)
请求用户最后触摸的URL,Message参数不能为null
requestTimes()
复原布局,参数JavaScript信息.
SaveWebArchive(String filename)
对当前的视图进行存档
SavaWebArchive(String because,boolean autoname,ValueCallBack callback)
参数:
because  : 旧档文件名
autoname : false  会取because
           true   会取because为文件夹名
           callback 储存回调的集合.
setDownloadListener(DownLoadListener listener)
当前内容并不需要进行渲染,需要下载会注册一个监听,来监听下载.
setHttpAuthUserNamePassword(String host,String realm,String username,String password)
设置host,realm的验证信息 username,password.
setNetWorkAvailable(boolean networkUp)
告诉WebView当前网络是否可用,这将影响JavaScript的nativegatorisOnline (在线和离线的状态)HTML5的响应事件时间.
ZoomBy(float zoomFactor)
在WebView中执行变焦操作,变焦因子  0.01f - 100f之内
                                        < 1f ->缩放状态
                                        > 1f ->扩大状态

某些页面不支持,google支持百度不支持,这个分网站的

ZoomIn()
返回值 boolean 在这个WebView执行放大
返回true 放大成功 ,false 放大无变化.
ZoomOut()
返回值:booleanWebView上执行缩小
返回true 缩小成功,false 缩小无变化.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Android WebView的用法大全: 1. 在XML布局文件中添加WebView组件 ``` <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent"/> ``` 2. 在Java代码中获取WebView组件并设置WebViewClient ``` WebView webView = findViewById(R.id.webview); webView.setWebViewClient(new WebViewClient()); ``` 3. 加载网页 ``` webView.loadUrl("https://www.example.com"); ``` 4. 后退和前进 ``` if(webView.canGoBack()) { webView.goBack(); } if(webView.canGoForward()) { webView.goForward(); } ``` 5. 加载本地HTML页面 ``` webView.loadUrl("file:///android_asset/index.html"); ``` 6. 设置JavaScript支持 ``` webView.getSettings().setJavaScriptEnabled(true); ``` 7. 设置缩放 ``` webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setDisplayZoomControls(false); ``` 8. 处理网页中的URL ``` webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.startsWith("mailto:")) { Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse(url)); startActivity(intent); return true; } view.loadUrl(url); return true; } }); ``` 9. 拦截网页中的请求 ``` webView.setWebViewClient(new WebViewClient() { @Override public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { if(request.getUrl().toString().endsWith(".png")) { try { InputStream inputStream = getAssets().open("image.png"); return new WebResourceResponse("image/png", "UTF-8", inputStream); } catch (IOException e) { e.printStackTrace(); } } return super.shouldInterceptRequest(view, request); } }); ``` 10. 处理页面加载事件 ``` webView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { progressBar.setVisibility(View.VISIBLE); } @Override public void onPageFinished(WebView view, String url) { progressBar.setVisibility(View.GONE); } @Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { Toast.makeText(MainActivity.this, "Error: " + error.getDescription(), Toast.LENGTH_SHORT).show(); } }); ``` 11. 调用JavaScript代码 ``` webView.loadUrl("javascript:alert('Hello, world!')"); ``` 12. 与JavaScript交互 ``` webView.addJavascriptInterface(new Object() { @JavascriptInterface public void showToast(String message) { Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show(); } }, "android"); ``` 以上是Android WebView的用法大全,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值