WebApp基础01-设置读取assets目录下文件

1.res/layout/activity_main.xml加入代码,需要在xml布局文件中声明WebView组件

<WebView
         android:id="@+id/webview"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
        />

2.在Activity中实例化WebView,并且可通过loadUrl(url)方法打开指定url资源

package com.example.webview;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

    private WebView webView;
    private String url = "http://www.baidu.com";
    private ProgressDialog progressDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initWebView();
    }

    private void initWebView() {
        webView = (WebView) findViewById(R.id.webview);// 获取控件
        webView.loadUrl(url);// 载入指定url(系统自带浏览器,若想用自身webview需要重写方法,提供client)
        WebSettings webSettings = webView.getSettings();// 获取配置信息
        webSettings.setJavaScriptEnabled(true);// 是否允许加载js文件
        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);// 打开缓存
        webView.setWebViewClient(new WebViewClient() {
            /**
             * 重写shouldOverrideUrlLoading,返回值若为true则用webview,false则是系统自身浏览器
             */
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

        webView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {// newProgress当前进度
                if (newProgress == 100) {
                    // 加载完毕,关闭进度条
                    closeProgressDialog();
                } else {
                    //加载未完成,显示进度
                    showProgressDialog(newProgress);
                }
                super.onProgressChanged(view, newProgress);
            }

            private void closeProgressDialog() {
                progressDialog.dismiss();
                progressDialog=null;

            }

            private void showProgressDialog(int newProgress) {
                if (progressDialog == null) {
                    progressDialog = new ProgressDialog(MainActivity.this);

                    progressDialog.setTitle("页面正在加载中..请稍后");
                    progressDialog
                            .setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置进度条样式
                    progressDialog.setProgress(newProgress);//设置进度
                    progressDialog.show();
                } else {
                    progressDialog.setProgress(newProgress);
                    progressDialog.show();
                }

            }
        });

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {// keyCode代表按键的数字标示符
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (webView.canGoBack()) {
                webView.goBack();
                return true;
            } else {
                System.exit(0);
            }
        }

        return super.onKeyDown(keyCode, event);
    }

}

3.如果出现  webpage not available 在AndroidManifest.xml加入以下代码

<uses-permission android:name="android.permission.INTERNET"/>

详情查看  http://www.cnblogs.com/lichenwei/p/3959345.html

时间: 2024-10-11 04:17:05

WebApp基础01-设置读取assets目录下文件的相关文章

Android开发系列(十七):读取assets目录下的数据库文件

在做Android应用的时候,不可避免要用到数据库.但是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客解决了我前面博客中写的一个小游戏的一个问题,另外也可以读取Raw目录下的数据库文件) 这就造成了一个问题,这个问题其实很好解决,解决方法如下: 我们首先把有数据的数据库文件放在assets资源目录下边,然后在apk应用启动的时候,把assets目录下的数据库文件的数据写入到真机的内存中去. 下边开始我们的代码编写:

Android读取assets目录下的资源

1.获取资源的输入流 资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以在 Activity 中通过 Context.getAssets().open(“sample.txt”) 方法获取输入流. 注意:如果资源文件是文本文件则需要考虑文件的编码和换行符.建议使用UTF-8和Unix换行符. 2. WebView 加载assets目录下的html文件 资源文件 sample.html 位于 $PROJECT_HOME/assets/ 目录下,可以通过以

安卓获取Assets目录下的资源

获取Assets目录下的资源 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15

Xamarin.Android 如何使用Assets目录下的文件

个人原创,转载注明出处:http://blog.csdn.net/supluo/article/details/43672411 Xamarin.Android  官网介绍地址:http://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/ 这里插入一下Assets与Raw目录的异同点 这两个目录的相同点: 1. 这两个

Java API 读取HDFS目录下的所有文件

/** * 获取1号店生鲜食品的分类id字符串 * @param filePath * @return */ public String getYHDSXCategoryIdStr(String filePath) { final String DELIMITER = new String(new byte[]{1}); final String INNER_DELIMITER = ","; // 遍历目录下的所有文件 BufferedReader br = null; try { F

Android开发之assets目录下资源使用总结

预前知识: Android资源文件分类: Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.java里面自动生成该资源文件的ID,所以访问这种资源文件比较简单,通过R.XXX.ID即可: 第二种是assets目录下存放的原生资源文件: 因为系统在编译的时候不会编译assets下的资源文件,所以我们不能通过R.XXX.ID的方式访问它们.那我么能不能通过该资源的绝对路径去访问它们呢?因为apk安装之后会放在/data/app/**.ap

Python 读取某个目录下的文件

读取某个目录下的文件,如'/Users/test/test_kmls'目录下有test1.txt.test2.txt. 第一种方法读出的all_files是test1.txt.test2.txt 1 import os 2 3 kml_path=os.path.abspath('/Users/test/test_kmls') 4 all_files=os.listdir(kml_path) 5 for file in all_files: 6 print file 第二种方法可以获得文件的全路径

获取Assets目录下的图片显示并上传

1 package com.jingle.getlocal; 2 3 import java.io.ByteArrayOutputStream; 4 5 import java.io.InputStream; 6 7 import org.apache.http.Header; 8 9 import sun.misc.BASE64Encoder; 10 11 import com.loopj.android.http.AsyncHttpClient; 12 import com.loopj.an

iOS案例:读取指定目录下的文件列表

// // main.m // 读取指定目录下的文件列表 // // Created by Apple on 15/11/24. // Copyright © 2015年 Apple. All rights reserved. // /* *读取指定目录下的文件列表 */ #import <Foundation/Foundation.h> void myQuickMethod(); int main(int argc, const char * argv[]) { //文件操作对象 NSFil