Android之webView入门
2016-03-24 16:33
483 查看
WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用。
webview有两个方法:setWebChromeClient 和 setWebClientsetWebClient:主要处理解析,渲染网页等浏览器做的事情
setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
WebViewClient就是帮助WebView处理各种通知、请求事件的。
在AndroidManifest.xml设置访问网络权限:
“`
控件: ``` <WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/webView" />
用途一:加载本地/Web资源
实例
public class MainActivity extends Activity { private EditText et_address=null; private WebView webview=null; private ProgressDialog pd=null; @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_address=(EditText) findViewById(R.id.ed_address); webview=(WebView) findViewById(R.id.webview); pd=new ProgressDialog(this); pd.setMessage("正在加载"); WebSettings setting=webview.getSettings(); setting.setSupportZoom(true); setting.setBuiltInZoomControls(true); webview.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub pd.show(); } @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub pd.dismiss(); } } ); } public void click(View view) { String address=et_address.getText().toString().trim(); if(TextUtils.isEmpty(address)) { address="http://192.168.247.1:8080"; } webview.loadUrl(address); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode==KeyEvent.KEYCODE_BACK&&webview.canGoBack()) { webview.goBack(); return true; } return super.onKeyDown(keyCode, event); } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub menu.addSubMenu(0, 0, 0, "刷新"); menu.addSubMenu(0, 0, 1, "后退"); menu.addSubMenu(0, 0, 2, "前进"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getOrder()) { case 0: webview.reload(); break; case 1: if(webview.canGoBack()) { webview.goBack(); }else { Toast.makeText(getApplicationContext(), "已经到第一页了", 0).show(); } break; case 2: if(webview.canGoForward()) { webview.goForward(); }else { Toast.makeText(getApplicationContext(), "已经是最后一页了", 0).show(); } break; default: break; } return super.onOptionsItemSelected(item); } }
参考链接:webView的使用以及总结
http://www.360doc.com/content/14/0611/13/15210553_385676271.shtml
相关文章推荐
- Android多进程导致多次初始化Application
- (4.1.36.10)[Android]Android字体高度的研究
- Android调试驱动抓log的方法
- Android中Volley框架Get,POST封装使用及自动解析JSON
- 通常在使用Android的getActionBar()的时候报空指针异常,通常有5种原因。
- Android系统关机或重启的几种实现方式
- appium – 那些工具
- android 数据传递——实例化对象调用方法
- 深入理解Objective-C的Runtime机制
- Android图片处理-相机、相处简单调用
- ListView和GridView与ScrollView冲突只显示一行的问题
- [LeetCode][数论]Happy Number
- IOS 封装上线 All object files and libraries for bitcode must be generated from.
- Android中退出多个Activity应用
- android activity onWindowFocusChanged函数的使用场景
- 关于16年2月14日以后上传AppStore出现:Missing iOS Distribution signing identity for...的问题
- 自定义ViewGroup,流式布局FlowLayout
- android 高效加载大图
- Android 特色开发,基于位置的服务
- Win8换成Win7系统问题小结(修改主板BIOS方法)