【Android】获取webview文章的标题
来源:互联网 发布:linux socket多线程 编辑:程序博客网 时间:2024/06/05 10:12
应用开发中需要获取WebView当前页面的标题,方法如下:
- WebChromeClient wvcc = new WebChromeClient() {
- @Override
- public void onReceivedTitle(WebView view, String title) {
- super.onReceivedTitle(view, title);
- txtTitle.setText("ReceivedTitle:" +title);
- }
- };
附webview代码参考作为备忘记录:
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.CookieManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class H5Activity extends BaseActivity implements OnClickListener {
private WebView contentWebView;
private RelativeLayout loading_container, error_container;
private String url;
private String title;
private WebSettings webSettings;
private TextView titleText;
private String mID;
private String LogonUrl = "";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web);
initData();
initView();
}
private void initData() {
Intent intent = getIntent();
title = intent.getStringExtra(Constant.TITLE);
url = intent.getStringExtra(Constant.JUMP_URL);
}
@SuppressLint("SetJavaScriptEnabled")
private void initView() {
initHeaderView();
contentWebView = (WebView) findViewById(webview);
// 启用javascript
contentWebView.getSettings().setJavaScriptEnabled(true);
String ua = contentWebView.getSettings().getUserAgentString();
contentWebView.getSettings().setUserAgentString(ua + " HRDAdroidApp");
contentWebView.loadUrl(url);
loading_container = (RelativeLayout) findViewById(R.id.loading_container);
error_container = (RelativeLayout) findViewById(R.id.error_container);
contentWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
//对WebView进行各种设置
webSettings = contentWebView.getSettings();
// 设置WebView属性,能够执行Javascript脚本
webSettings.setJavaScriptEnabled(true);
// 设置出现缩放工具
webSettings.setBuiltInZoomControls(false);
//优先使用缓存
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//不使用缓存
//webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
//打开页面时, 自适应屏幕:
webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放//将图片调整到适合webview的大小
webSettings.setLoadWithOverviewMode(true);// 缩放至屏幕的大小
//支持缩放
webSettings.setBuiltInZoomControls(false);//设置支持缩放
webSettings.setSupportZoom(false); //支持缩放
//如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。
contentWebView.requestFocusFromTouch();
contentWebView.setVerticalScrollBarEnabled(false);
contentWebView.setHorizontalScrollBarEnabled(false);
webSettings.setLoadsImagesAutomatically(true); //设置自动加载图片
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//允许js弹出窗
webSettings.setNeedInitialFocus(true); //当webview调用requestFocus时为webview设置节点
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); //支持内容重新布局
webSettings.supportMultipleWindows();//多窗口
webSettings.setAllowFileAccess(true); //设置可以访问文件
webSettings.setDomStorageEnabled(true);
webSettings.setDatabaseEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口
webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片
// 此处能拦截超链接的url,即拦截href请求的内容.
contentWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
titleText.setText(title);
}
@Override
public void onProgressChanged(WebView view, int progress) {
//txtTitle.setText("");
/* loadingProgress.setVisibility(View.VISIBLE);
loadingProgress.setProgress(progress * 100);
if (progress == 100) {
loadingProgress.setVisibility(View.GONE);
txtTitle.setText(mytitle);
}*/
super.onProgressChanged(view, progress);
}
});
contentWebView.setWebViewClient(new WebViewClient() {
//在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,
//不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,
//于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("VVV", "shouldOverrideUrlLoading: "+url);
view.loadUrl(url);
//获取cookies
CookieManager cm = CookieManager.getInstance();
String cookies = cm.getCookie(url);
//SPUtils.putString(MainActivity.this,"cook",cookies);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// view.getSettings().setJavaScriptEnabled(true);
super.onPageFinished(view, url);
// html加载完成之后,添加监听图片的点击js函数
// addImageClickListner();
error_container.setVisibility(View.INVISIBLE);
loading_container.setVisibility(View.INVISIBLE);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// view.getSettings().setJavaScriptEnabled(true);
super.onPageStarted(view, url, favicon);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
loading_container.setVisibility(View.INVISIBLE);
error_container.setVisibility(View.VISIBLE);
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
}
private void initHeaderView() {
RelativeLayout btnleft = (RelativeLayout) findViewById(R.id.back_layout);
btnleft.setVisibility(View.VISIBLE);
titleText = (TextView) findViewById(R.id.tv_title_bar_text);
//titleText.setText(title);
RelativeLayout btnright = (RelativeLayout)findViewById(R.id.right_layout);
btnright.setVisibility(View.INVISIBLE);
}
public void onBack(View v) {
Intent resultIntent = new Intent();
H5Activity.this.setResult(RESULT_CANCELED, resultIntent);
finish();
}
@Override
public void onClick(View view) {
switch (view.getId()) {
default:
break;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK && contentWebView.canGoBack()) {
contentWebView.goBack();// 返回前一个页面
return true;
}
return super.onKeyDown(keyCode, event);
}
}
【总监】十二春秋之,3483099@qq.com;
【Master】zelo,616701261@qq.com;【运营】运维艄公,897221533@qq.com;
【产品设计】流浪猫,364994559@qq.com;【体验设计】兜兜,2435632247@qq.com;
【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com;
【java】首席工程师MR_W,feixue300@qq.com;【测试】土镜问道,847071279@qq.com;
- 【Android】获取webview文章的标题
- Android WebView 获取网页的标题
- android 获取WebView的页面标题
- Android WebView获取网站标题
- ANDROID获取WEBVIEW中网页的TITLE(标题)信息
- Webview获取连续H5页面的标题
- webview获取网页标题
- [Android] 获取WebView的页面标题(Title)-----WebChromeClient.onReceivedTitle()方法的重写
- 【Android基础】获取WebView的页面标题(Title)-----WebChromeClient.onReceivedTitle()方法的重写
- android webview 在小米物理按键不会走获取标题的 函数
- Android Webview获取网页标题和文本内容
- Android 获取WebView的高度
- Android获取WebView的UserAgent
- Android WebView系列文章4 WebView的问题总结
- 文章标题android 的ContentProvider内容提供者
- 文章标题:Android活动的生命周期
- 文章标题webview.loadUrl()可能会URLDecoder
- dedecms 获取文章标题路径
- 【数据结构】算法时间复杂度分析
- 联合权值——o(n)做法
- Turtlebot3入门手册之八:Realsense r200安装与测试
- 机器学习基本功
- C语言位域
- 【Android】获取webview文章的标题
- idea常用快捷键
- SpannableString文字操作
- Leetcode(W1):169.Majority Element
- 【LeetCode】4.Median of Two Sorted Arrays
- 根据一个点获取窗口句柄的API
- 257. Binary Tree Paths
- 数据库连接Java
- matlab2c使用c++实现matlab函数系列教程-normpdf函数