监听webview显示完毕事件
来源:互联网 发布:2017 大数据 大会 编辑:程序博客网 时间:2024/06/05 08:38
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> 项目中有这样一个需求:打开某份邮件,在邮件下载显示完毕后对正文中插入的图片加密;再次打开邮件先解密,保证邮件正文中的图片可以正常显示,在此之后再次加密,避免用户直接在rom中打开图片</span>
写了一个demo,思路是webview加载数据,显示完毕后对图片加密,下次加载数据前解密,显示完毕后再次加密
闲话少叙,上代码:
重写WebView,命名为MyWebView.java
package com.itheima38.demo;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.util.Log;import android.webkit.WebView;public class MyWebView extends WebView{private boolean isRendered = false;interface DisplayFinish{void After();}DisplayFinish df;public void setDf(DisplayFinish df) {this.df = df;}public MyWebView(Context context, AttributeSet attrs) {super(context, attrs);}public MyWebView(Context context) {super(context);}//onDraw表示显示完毕@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);if(!isRendered && null!=df && getContentHeight()>0){ Log.d("MyWebView", "getContentHeight():"+getContentHeight()); df.After(); isRendered = true;}}}
act_b.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <!-- <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="b1" /> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="b2" /> <Button android:id="@+id/btn3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="b3" /> --> <com.itheima38.demo.MyWebView android:id="@+id/my_webview" android:layout_width="match_parent" android:layout_height="300dp" android:layout_marginTop="200dp" /></LinearLayout>
ActB.java
package com.itheima38.demo;import com.itheima38.demo.MyWebView.DisplayFinish;import com.itheima38.demo.R;import android.app.Activity;import android.app.Dialog;import android.app.ProgressDialog;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Button;import android.widget.Toast;public class ActB extends Activity{private Button btn1;private Button btn2;private Button btn3;private MyWebView myWebView;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.act_b);//======网页显示完毕myWebView = (MyWebView)findViewById(R.id.my_webview);myWebView.setWebViewClient(new WebViewClient(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}@Overridepublic void onPageFinished(WebView view, String url) {// TODO Auto-generated method stubsuper.onPageFinished(view, url);myWebView.setDf(new DisplayFinish(){ @Overridepublic void After() System.out.println("页面显示完毕"); //图片加密 }});}});String baseUrl = Environment.getExternalStorageDirectory().getAbsolutePath() + "/abc/";System.out.println("baseUrl="+baseUrl);// baseUrl=/storage/emulated/0/abc/String data = "<html><head><title>test</title></head><body>白日依山尽<br />黄河入海流<br />欲穷千里目<br />更上一层楼<br /><img src='file://"+baseUrl+"test.png' /></body></html>";myWebView.loadDataWithBaseURL(baseUrl, data, "text/html", "utf-8", null);}}
0 0
- 监听webview显示完毕事件
- Android 监听系统启动完毕事件
- 监听平台切换完毕的事件
- android activity监听加载完毕事件
- android activity监听加载完毕事件
- 监听JComponent显示事件
- Unity3D研究院之监听平台切换完毕的事件
- 监听WebView的各种点击事件
- Fragment 里面加webview 监听onback事件
- Android webview监听网页对话框点击事件
- 判断webview加载完毕
- 监听NSBlockOPeration执行完毕
- 自定义webView,实现带title和返回的webView,监听webView的滑动事件
- 在Fragment加了个webview 怎么监听返回事件
- WebView使用详解——WebViewClient与常用事件监听
- 监听iPad键盘显示和隐藏事件
- Android 键盘显示/隐藏监听事件
- 软键盘显示隐藏事件监听
- 浅谈HashMap与HashTable
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- 找规律___zxa and set(hdu 5680 BestCoder Round #83)
- BZOJ4411——[Usaco2016 Feb]Load balancing
- C++ map的基本操作和使用
- 监听webview显示完毕事件
- ubuntu上安装elasticsearch遇到的坑
- 关于自由移站法及坐标转换模型的综述
- SDUT 2054 双向链表
- C++ HashMap
- eclipse 基础设置
- Ajax验证表单(同步验证)
- Android Studio 开发常用快捷键
- csdn待改进点之3------>分类中的文章总数和实际总数不一致