一如安卓深似海,本来只需要被坑去写HTTP协议网络部分的,又接了写WebView的活,好在WebView使用还算简单

直接看官方文档:http://developer.android.com/guide/webapps/webview.html
http://developer.android.com/reference/android/webkit/WebView.html


使用WebView deliver Web APP

由于需求界面很简单直接使用官方样例即可

  • layout:
<?xml version="1.0" encoding="utf-8"?><WebView  xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/webview"    android:layout_width="fill_parent"    android:layout_height="fill_parent"/>
  • 在oncreat()里写入:
WebView myWebView = (WebView) findViewById(R.id.webview);myWebView.loadUrl("http://www.example.com");
  • 还需要为应用获取网络访问权限,在manifest文件中按如下样例写入:
<manifest ... >    <uses-permission android:name="android.permission.INTERNET" />    ...manifest>

这样就可以实现基本的呈现Web页面的目标,但是这样并不能满足正常的需求。

在WebView中使用javascript

在以上代码的基础上继续修改:

WebView myWebView = (WebView) findViewById(R.id.webview);WebSettings webSettings = myWebView.getSettings();webSettings.setJavaScriptEnabled(true);

阻止调用默认浏览器

重载方法:

private class MyWebViewClient extends WebViewClient {    @Override    public boolean shouldOverrideUrlLoading(WebView view, String url){        // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边        view.loadUrl(url);        return true;    }}

防止应用内更新进度调用浏览器,并进行错误处理:

 final Activity activity = this; webview.setWebChromeClient(new WebChromeClient() {   public void onProgressChanged(WebView view, int progress) {     // Activities and WebViews measure progress with different scales.     // The progress meter will automatically disappear when we reach 100%     activity.setProgress(progress * 1000);   } }); webview.setWebViewClient(new WebViewClient() {   public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {     Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();   } });

阻止页面打开时直接调用了系统浏览器:

        if (Build.VERSION.SDK_INT >= 19) {            Toast.makeText(this, "success", Toast.LENGTH_LONG).show();            myWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);        }

更多相关文章

  1. Android中shape的使用大全
  2. android Tether 分析
  3. Android(安卓)- Rerofit-RxJava(转载)
  4. android Toolbar的使用结合状态栏与返回键
  5. Android(安卓)recyclerview更新item位置移动
  6. Android音频系统之四AudioPolicy
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. Android进行短信备份的一个工具类,支持进
  2. android ContentResolver的使用(获取和修
  3. Android(安卓)中文 API(123) —— AbsListV
  4. Android(安卓)4.0后,自定义Title报错 You
  5. 【Android-FaceBook】facebook Android配
  6. android开发给linearlayout设置边框
  7. Android(安卓)APPT2 报异常处理
  8. Android中的网络编程系列(一):URLConnect
  9. Android(安卓)Studio中如何新建assets文
  10. Android(安卓)SDK Manager 代理服务器设