app加载本地网页

在Ubuntu 16.04 LTS系统中,已配置Apache2服务并开启80端口,本地网页存于/var/www/html,通过无线网卡获取内网IP 192.168.1.106。App源代码中,将网络请求放入Thread以处理耗时操作,主活动负责调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 先交代背景
 主机:Ubuntu16.04LTS
 安装服务:Apache2 http服务,80端口已开启
 网络:无线网卡登录 动态分配内网IP 192.168.1.106

1.本地网页已经写入,放在/var/www/html中,设为默认网页.文件名:index.html.因为不进行具体的解析工作,网页代码不加展示.

2.App源代码以及注释
 1)网络请求属于耗时操作,将其封装入Thread类中.

public class HttpThread extends Thread{
    private String url;
    private WebView web;
    private Handler handler;
    private StringBuffer sb = new StringBuffer();

//    初始化
    public HttpThread(String url,WebView web,Handler handler){
    this.url = url;
    this.web = web;
    this.handler = handler;
    }

//编写主要耗时操作
    @override
    public void run(){
        try{
        URL myUrl = new URL(url);
        HttpURLConnection localCon =(HttpURLConnection)myUrl.openConnection();
        localCon.setRequestMethod("GET");

    //通过Connection对象的open方法拿到输入流,传入InputStreamReader对象中,构建BufferedReader对象
        BufferedReader reader = new BufferedReader( new InputStreamReader( localCon.getInputStream() ) );


        String str = null;
        while( (str=reader.readLine() ) != null){
            sb.append(str);
        }//while

        //发送耗时逻辑
        handler.post(new Runnable){
            @override
            public void run(){
                web.loadData(sb.toString(),"text/html;charset=utf-8",null);
            }
        }//handler
        }catch (MalformedURLException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            e.printStackTrace();
        }
    }//run
}//class

 2)主活动调用即可
 

Public Class MainActivity extends Activity{
    private WebView web;
    private Handler handler;
    private String str = "http://192.168.1.106";

    @override
    protected void onCreate(Bundle saveInstanceState){
        super.onCreate(saveInstanceState);
        setContentView(R.layout.activity_main);
        initiate();

//        **线程必须开启才会生效**,调用start()方法.
        new HttpThread(str,web,handler).start();

    }

    public void initiate(){
    web = (WebView)findViewById(R.id.webview);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值