Android Studio将本地HTML加载到WebView

本文介绍了如何在Android Studio的APP中通过WebView加载本地HTML,避免了跳转到外部浏览器,实现网页内容在应用内直接展示。通过修改代码,实现了WebView加载HTML的功能。

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

这两天遇到一个问题,就是需要在自己的APP里面引用别的网页,但是呢有一个网页使用自己APP上门的WebView加载不出来,当然了,不信诸位可以试试,网址是

https://m.douban.com/note/452724957/?type=like

当然了,最先呢我是直接调用系统的浏览器来显示的,但是呢考虑到如果没有系统浏览器该怎么办,所以就搞了个高大上的WebView来显示

下面代码是原来使用自带浏览器的:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://m.douban.com/note/452724957/?type=like"));
startActivity(intent);

后来查了下资料,觉得用WebView来显示网页比较好,不用再一次的跳转调用其他浏览器,直接可以在APP里面显示出来(相当于一个网页页面),于是代码改成了这样:

Intent intent=new Intent(getApplicationContext(), WebViewActivity.class);
intent.putExtra("WebUrl","https://m.douban.com/note/452724957/?type=like");
startActivity(intent);

但是呢这样了之后不知道什么原因,跳转之后也接受到数据了,但是就是不能显示出我想要的页面,显示的页面一片空白,最后决定将网页下载到本地,用WebView加载本地的HTML

首先需要下载需要的HTML页面(网上有方法),这里要注意选择自己需要的xxx.html格式(试过一不小心下载的是xxx.mhtml格式的读出来的是一堆字母代码,没有一个中文),下好之后在Android Studio中自己的model里的main目录下建立文件名为assets的一个Folder(参考http://blog.youkuaiyun.com/u011710991/article/details/52219648),建好之后将下载的HTML放到里面,在项目下打开.iml文件,检查标签有没有<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets">这一句,没有的在最后一行加上

但是呢在打开HTML文件的时候,问题又来了,这出错了,翻译是id重复了,把第一个错误的那行连同前面一行、后面一行删掉就好

之后代码变成了这样:

Intent intent=new Intent(content, WebViewActivity.class);
intent.putExtra("WebUrl","file:///android_asset/myweb.html");
startActivity(intent);
另一个界面代码:

public class WebViewActivity extends Activity {
    private WebView mWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.web_view_layout);
        mWebView = (WebView) findViewById(R.id.see_web_view);
        WebSettings settings = mWebView.getSettings();
        Intent it = getIntent();
        String WebUrl = it.getStringExtra("WebUrl");
        Log.e("WebView--->", String.valueOf(WebUrl));
        mWebView.loadUrl(WebUrl);

        settings.setJavaScriptEnabled(true); //这里如果本地html引入了javascript那么需要把这个设置为true
        settings.setAllowFileAccess(true);

        settings.setDefaultTextEncodingName("utf-8"); //设置文本编码
        settings.setAppCacheEnabled(true);
        settings.setCacheMode(WebSettings.LOAD_DEFAULT);//设置缓存模式
        settings.setDomStorageEnabled(true);
        settings.setBuiltInZoomControls(true);
        settings.setSupportZoom(true);
        settings.setLoadWithOverviewMode(true);
        settings.setUseWideViewPort(true);
        settings.setLoadsImagesAutomatically(true);

        mWebView.setWebViewClient(new WebViewClient() {

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
    }
}
到这里大功告成!










                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值