WebView加载网页以及处理里面的超链接点击事件
来源:互联网 发布:淘宝开店拍照 编辑:程序博客网 时间:2024/05/16 05:57
setWebChromeClient主要处理解析,渲染网页等浏览器做的事情
WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
public class MainActivity extends Activity {
private Context context;private WebView webView;
private String weburl1 = "http://4004.wuurl.com/";
private String weburl2 = "http://act.uniny.com/qiman160524?ismobile=1&mt=10.1.r79139";
private String weburl3 = "https://www.baidu.com/";
private String weburl4 = "file:///android_asset/newfile.html";// 本地html
final Activity activity = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.activity_main);
context = this;
initview();
// setpagedata1();
setpagedata2();
}
private void initview() {
// TODO Auto-generated method stub
webView = (WebView) findViewById(R.id.webView1);
}
private void setpagedata1() {
// TODO Auto-generated method stub
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) { // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
view.loadUrl(url);
return true;
}
});
webView.loadUrl(weburl1);
}
private void setpagedata2() {
// TODO Auto-generated method stub
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);// 允许加载地图
webView.setDownloadListener(new MyWebViewDownLoadListener()); //通过实现自己的DownloadListener来实现文件的下载
@Override
public void onProgressChanged(WebView view, int progress) {
// TODO Auto-generated method stub
activity.setTitle("Loading...");
activity.setProgress(progress * 100);
if (progress == 100)
activity.setTitle(R.string.app_name);
}
});
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) { // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
Log.i("TAG", url);
// view.loadUrl(url);
if (openWithWevView(url)) {//如果是超链接,执行此方法
view.loadUrl(url);
} else {
// Uri uri = Uri.parse(url); // url为你要链接的地址
// Intent intent = new Intent(Intent.ACTION_VIEW, uri);
// startActivity(intent);
}
return true;
}
});
webView.loadUrl(weburl3);
}
public boolean onKeyDown(int keyCode, KeyEvent event) {//处理webview的点击回退事件
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack(); // goBack()表示返回WebView的上一页面
return true;
}
return super.onKeyDown(keyCode, event);
}
protected boolean openWithWevView(String url) {//处理判断url的合法性
// TODO Auto-generated method stub
if (url.startsWith("http:") || url.startsWith("https:")) {
return true;
}
return false;
}
private class MyWebViewDownLoadListener implements DownloadListener{
@Override
public void onDownloadStart(String url, String userAgent, String arg2,
String mimetype, long contentLength) {
// TODO Auto-generated method stub
Uri uri = Uri.parse(url); // url为你要链接的地址
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
}
<RelativeLayout 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">
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
- WebView加载网页以及处理里面的超链接点击事件
- webView里面图片的点击事件
- webView加载的图片添加点击事件
- 点击条目webView加载网页
- 求助: Android 加载 webview, 点击webview 中网页时间, 如何触发 Android 事件
- WebView的加载网页
- webview捕捉到网页中的点击事件
- Android webview监听网页对话框点击事件
- Android WebView加载网页,实现前进、后退、刷新、超链接
- Android中webview拨打加载网页中的电话超链接
- android webview点击拦截事件处理判断
- IFRAME中点击子框架里面的超链接怎么怎么在新网页中打开想要打开的页面
- iframe中点击子框架里面的超链接在新网页中打开想要打开的页面
- 安卓学习笔记---Fragment 里面加webview 监听onback事件(WebView的返回以及整个退出事件)
- Android WebView加载网页失败处理
- android的webView加载网页
- ListView里面添加Button之类可点击事件Item不可点击的处理方法
- Android WebView的使用(禁止超链接调用其他浏览器 设置滚动条 禁止横竖屏切换重新加载网页 )
- Spark Shell With Python
- CNN中的卷积操作
- EF 通用数据层 增删改查操作,泛型类II
- c++:简单的动态分配2
- 【复习】servlet之问号传值(表单get请求传值)
- WebView加载网页以及处理里面的超链接点击事件
- android 中webview基本使用的方法小结
- 【Android Studio】Android Studio-使用过程中问题集锦
- android adapter封装
- Glibc中std::qsort在多线程下出core原因分析及解决
- 文章标题
- OMNet++工程文件的介绍
- 简单的继承和派生
- 设计模式之观察者模式