博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用WebView在应用程序中打开网页
阅读量:5145 次
发布时间:2019-06-13

本文共 2583 字,大约阅读时间需要 8 分钟。

      如果想在应用程序里展示一些网页,在自己的应用程序里嵌入一个浏览器,可以借助WebView控件调用loadUrl()方法加载显示

对应的网页。

webView = (WebView) findViewById(R.id.web_view);webView.loadUrl("http://www.baidu.com");

      这时可能还会直接跳转到系统浏览器,需要重写shouldOverrideUrlLoading()方法,在webview中实现跳转。

webView.setWebViewClient(new WebViewClient(){            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url) {                // TODO Auto-generated method stub                view.loadUrl(url);// 根据传入的参数再去加载新的网页 
return true;     // 表示当前WebView可以处理打开新网页的请求,不用借助系统浏览器,执行自己的重写的方法             }        });                webView.loadUrl(url);

       我们还要在AndroidManifest.xml中加上权限,不然会出现无法访问URL

……
……

      这样一个在应用程序中内置的简单浏览器就差不多了,还可以添加一个编辑框edittext 进行完善,用来输入网址。完成后点击enter键访问网页。

但是在输入法软键盘右下角enter键会是回车按键,但我们经常会看到点击不同的编辑框,输入法软键盘右下角会有不同的图标

“GO”或“前往“,放大镜,”发送“。   只需修改EditText中的 android:imeOptions属性,就会出现想要的效果。

android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等

最后还要把edittext的singleline 属性设为ture,或者inputType设为text 

 

给edittext 添加一个setOnKeyListener(onKeyListener)事件,监听软键盘按键。在它的onkey()方法中监听软键盘上右下角Enter键是否被按下。

当参数keyCode ==KeyEvent.KEYCODE_ENTER的时候,就可以响应打开网页的功能了。

private OnKeyListener onKeyListener=new OnKeyListener() {                @Override        public boolean onKey(View arg0, int keyCode, KeyEvent arg2) {            // TODO Auto-generated method stub            if(keyCode==KeyEvent.KEYCODE_ENTER)            {
//在按下enter键后,隐藏软键盘 InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if(inputMethodManager.isActive()){ inputMethodManager.hideSoftInputFromWindow(arg0.getApplicationWindowToken(), 0); } String urlString=editText.getText().toString(); webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub view.loadUrl(url); return true; } }); webView.loadUrl(urlString); } return false; } };

   

     还可以用goback()方法进行后退

@Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        // TODO Auto-generated method stub        if (webView.canGoBack() && keyCode == KeyEvent.KEYCODE_BACK) {            webView.goBack();            return true;            }        return false;    }

     然后运行一下吧

                                  

转载于:https://www.cnblogs.com/qyping/p/4923655.html

你可能感兴趣的文章
uva 1589
查看>>
mysql in(...) 1次取出当前记录及上1条下1条记录, 且使用了主键作为索引
查看>>
java实现计算器
查看>>
周五——3.15
查看>>
转载 调试器工作原理
查看>>
软工作业-wc(Python实现)
查看>>
蛇形填数
查看>>
php 两段文本对比,不同的文字显示高亮
查看>>
B-tree多路搜索树
查看>>
Swarm基于多主机容器网络 (overlay networks ) - 运维笔记
查看>>
基于嵌入式操作系统VxWorks的多任务并发程序设计(1)――基本概念 分类: ...
查看>>
数字视频基础(四) 分类: 生活百科 2014...
查看>>
am335x在ubuntu下使用StarterWare编写裸机程序并在CCS中用Jlink调试 ...
查看>>
VS2005 添加onTimer定时器
查看>>
nodejs, 遍历所有进程, 且关闭匹配的进程
查看>>
STP总结
查看>>
Android 开发 VectorDrawable 矢量图 (三)矢量图动画
查看>>
maven入门教程
查看>>
FGMap学习之--自定义标注(示例:核电站离我们有多远)
查看>>
我对asp.net并行请求数量的理解
查看>>