webview操作

来源:互联网 发布:淘宝客服培训工作计划 编辑:程序博客网 时间:2024/06/06 07:27
刷新当前页面
wView.reload();


滚动到顶部
wView.setScrollY(0);


获取网站标题
wView.setWebChromeClient(new WebChromeClient() {// 这里设置获取到的网站titlepublic void onReceivedTitle(WebView view, String title) {super.onReceivedTitle(view, title);txt_title.setText(title);}});


在当前软件中使用内置浏览器
wView.setWebViewClient(new WebViewClient() {// 在webview里打开新链接/*允许网页重定向,如不允许,去掉代码,加false*/public boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;   }});/*注意,如果取消重定向,http,https开头取消重定向,优酷就不可以*/public boolean shouldOverrideUrlLoading(WebView view, String url) {if (url.startsWith("http:") || url.startsWith("https:")) {return false; // 取消重定向} else {return true;}


设置屏幕自适应
WebSettings settings = wView.getSettings();settings.setUseWideViewPort(true);//设定支持viewportsettings.setLoadWithOverviewMode(true);   //自适应屏幕settings.setBuiltInZoomControls(true);settings.setDisplayZoomControls(false);settings.setSupportZoom(true);//设定支持缩放settings.setDisplayZoomControls(false);  //取消缩放控件wView.getSettings().setJavaScriptEnabled(true);  //开启js执行


开启文件下载
wView.setDownloadListener(new DownloadListener() {            @Override            public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {                if (url != null && url.startsWith("http://"))                    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));            }        });


设置隐藏标题栏
/*那个activity要去掉NoTitleBar就加入哪个内*/android:windowTranslucentStatus="true"android:windowTranslucentNavigation="true"android:theme="@android:style/Theme.Holo.NoActionBar.TranslucentDecor"   //完全没有操作栏半透明的主题(好看)


设置隐藏状态栏全屏
/*要写在setContentView前*//*隐藏状态栏*///隐藏标题栏        requestWindowFeature(Window.FEATURE_NO_TITLE);        //隐藏状态栏        //定义全屏参数        int flag=WindowManager.LayoutParams.FLAG_FULLSCREEN;        //获得当前窗体对象        Window window=MainActivity.this.getWindow();        //设置当前窗体为全屏显示        window.setFlags(flag, flag);


加载进度条
/*滚动条*/ <ProgressBar      style="?android:attr/progressBarStyleHorizontal"        android:id="@+id/myProgressBar"        android:layout_below="@id/myButton"        android:layout_width="match_parent"        android:layout_height="5px"        />final ProgressBar bar = (ProgressBar)findViewById(R.id.myProgressBar);主activity内部加入webView.setWebChromeClient(new WebChromeClient() {          @Override          public void onProgressChanged(WebView view, int newProgress) {              if (newProgress == 100) {                  bar.setVisibility(View.INVISIBLE);              } else {                  if (View.INVISIBLE == bar.getVisibility()) {                      bar.setVisibility(View.VISIBLE);                  }                  bar.setProgress(newProgress);              }              super.onProgressChanged(view, newProgress);          }                });


实现标题栏透明
/*包括上下文菜单通知*/android:windowTranslucentStatus="true"android:windowTranslucentNavigation="true"android:theme="@android:style/Theme.Holo.NoActionBar.TranslucentDecor"


获取当前网页url
wView.getOriginalUrl();


兼容优酷播放视频
//在Application节点上增加 :android:hardwareAccelerated="true"//在布局文件中,写入(webview)android:layerType="hardware"//代码写入:WebSettings settings_one = wView.getSettings();settings.setDatabaseEnabled(false);settings.setDomStorageEnabled(false);


开启硬件加速,耗电量增加,解析速度加快
<application android:hardwareAccelerated="true">  <activity ... />


文本操作到剪切板
ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);cm.setText(wView.getOriginalUrl());


开启web缓存
/*清单加入:*/<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />WebSettings settings_item_hcon = wView.getSettings(); // 设置webview对象settings_item_hcon.setAppCacheMaxSize(1024*1024*8);    //设置大小String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();   //获取缓存路径settings_item_hcon.setAppCachePath(appCachePath);   //设置htm5缓存路径settings_item_hcon.setAllowFileAccess(true);    //设置允许文件访问settings_item_hcon.setAppCacheEnabled(true); // 开启htm5缓存settings_item_hcon.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // 只要本地有,无论是否过期,都使用缓存中的数据wView.clearCache(boolean)   //清空缓存


判断是否有网络
ConnectivityManager _cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); // 开启服务NetworkInfo info = _cm.getActiveNetworkInfo(); // 判断是否有网络if (info == null) {} else {}


设置自动加载图片
wView.getSettings().setLoadsImagesAutomatically(false);    //设置自动加载图片


设置延迟加载图片
wView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);   //提高渲染级别webView.setWebViewClient(new WebViewClient() {            public boolean shouldOverrideUrlLoading(WebView view, String url) {                //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器                return true;            }            public void onPageStarted(WebView view, String url, Bitmap favicon) {                super.onPageStarted(view, url, favicon);                    webView.getSettings().setBlockNetworkImage(true);            }            public void onPageFinished(WebView view, String url) {                super.onPageFinished(view, url);                    webView.getSettings().setBlockNetworkImage(false);            }        });


设置edittext输入完后判断输入法按下
android:imeOptions="actionSearch"    //输入法显示搜索    有很多类别自行百度/*主类实现接口:implements OnEditorActionListener*//* Edittext加载监听 */editText_title.setOnEditorActionListener(this);EditText_geturl.setOnEditorActionListener(this);/*EditText监听*/public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {doWhichOperation(actionId);  //当点击传入actionId判断return true;}


判断操作输入法
private void doWhichOperation(int actionId) {switch (actionId) {case EditorInfo.IME_ACTION_GO:   //筛选条件判断按下了?自行百度break;case EditorInfo.IME_ACTION_SEARCH:break;default:break;}}


设置输入栏隐藏
InputMethodManager imm = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);    //隐藏输入法


点击EditText选中全部
dittext = (EditText) findViewById(R.id.url_input);url_input.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {    //点击选择所有文本edittext.requestFocus();    //当点击时焦点转到edittextedittext.setSelectAllOnFocus(true);// TODO Auto-generated  //点击选中所有文本// method stub}});


退出
/*杀进程*/System.gc();  //杀进程   只是关闭进程wView.clearCache(boolean)   //清空缓存System.exit(0);   //关闭程序真正关闭


开启横屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


关闭横屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


最后分享我的浏览器在GitHub

1 0
原创粉丝点击