Android控件webview使用
来源:互联网 发布:印度军事实力 知乎 编辑:程序博客网 时间:2024/06/01 08:12
先来看下webview在一些App当中的应用实例,类似网易 今日头条等新闻类APP中基本都有用到,可以看到顶部栏中间显示的链接是网页链接
接下来我们就来看下webview究竟如何使用
思路:1.我们希望使用当前程序来加载webview页面,而不是通过使用Android系统默认浏览器加载页面。需要实现 setWebViewClient()方法,重写其shouldOverrideUrlLoading(WebView view, String url)方法来实现页面加载
2.实现类似上面导航栏效果,导航栏中间展示网页链接或者网页名称。通过setWebChromeClient()方法,重写 其onReceivedTitle(WebView view, String title)方法
具体代码
配置文件MainActivity.xml
<span style="font-size:14px;"><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" tools:context=".MainActivity"> <RelativeLayout android:id="@+id/rl_container" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/btn_return" android:layout_width="wrap_content" android:layout_height="40dip" android:text="@string/title_return" android:layout_alignParentLeft="true"/> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:ellipsize="end"/> <Button android:id="@+id/btn_refresh" android:layout_width="wrap_content" android:layout_height="40dip" android:text="@string/title_refresh" android:layout_alignParentRight="true"/> </RelativeLayout> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/rl_container"/></RelativeLayout></span>
MainActivity中
<span style="font-size:14px;">public class MainActivity extends ActionBarActivity { private WebView webView; private Button returnButton,refreshButton; private TextView titleTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); titleTextView= (TextView) findViewById(R.id.tv_title); returnButton= (Button) findViewById(R.id.btn_return); refreshButton= (Button) findViewById(R.id.btn_refresh); webView= (WebView) findViewById(R.id.webView); <span style="color:#ff0000;"> webView.loadUrl("http://www.baidu.com");</span> <span style="color:#ff0000;"> webView.setWebChromeClient(new WebChromeClient()</span>{ @Override public void onReceivedTitle(WebView view, String title) { titleTextView.setText(title); super.onReceivedTitle(view, title); } }); //项目自身调用,而不是采用手机自带浏览器调用 <span style="color:#ff0000;">webView.setWebViewClient(new WebViewClient()</span>{ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); } }); returnButton.setOnClickListener(new MyListener()); refreshButton.setOnClickListener(new MyListener()); } class MyListener implements View.OnClickListener { @Override public void onClick(View view) { switch (view.getId()){ case R.id.btn_return: finish(); break; case R.id.btn_refresh: webView.reload(); break; } } }}</span>效果
别忘了网络权限,在主配置文件中:
<uses-permission android:name="android.permission.INTERNET"/>
ok,功能基本实现,至于后续在webview中下载文件,cookie存储相关先不做研究。
实现以后,不知道你们有没有这样的疑问,既然webview功能这么强大,而且html5已经很好的支持手机页面,那为什么还要做客户端的开发呢?webview是很强大,也确实有很多实际项目就用html5来实现手机页面,根本不用客户端;但是webview有其致命的缺点,最早的facebook曾经尝试用webview来实现手机App的研发,很快他们就放弃了,因为webview加载对手机耗电量,手机性能等很多因素消耗非常大,用户体验会很差,这也是为什么不完全采用webview的主要原因。
看完觉得还可以的,记得点赞留言。
0 0
- Android控件webview使用
- webView控件基本使用(android)
- webView控件基本使用(android)
- 使用android.webkit.WebView控件
- android WebView控件使用事项
- Android:控件WebView使用(一)
- Android WebView控件使用介绍
- android Android:控件WebView显示网页webview的使用
- Android中WebView控件的使用
- Android中WebView控件的基本使用
- Android开发---WebView控件的使用
- [android进阶]webview控件的使用
- android控件:WebView的初使用
- Android控件使用:WebView(一)
- Android之WebView控件简单使用总结
- Android--------使用WebView控件显示网络
- Android-控件WebView的基本使用
- android 使用控件webView 与 vue交互
- redis安装
- 特殊需求正则表达式
- SAP FICO—总账科目
- DNS报文格式(RFC1035)
- 解决远程桌面不能复制粘贴的方法
- Android控件webview使用
- 第三章 界面UI的基石—UI布局(5)
- Eclipse引用外部project
- 【android】ScrollView源码分析
- 算法初探
- 栈stack 堆heap 全局区(静态区)static 文字常量区 程序代码区
- RBAC权限管理
- 正则表达式基本语法
- 2015年的五点期许