当前位置: 移动技术网 > 移动技术>移动开发>Android > 安卓开发笔记(二十二):读取本地(内置)html文件并实现和Javascript交互

安卓开发笔记(二十二):读取本地(内置)html文件并实现和Javascript交互

2019年04月09日  | 移动技术网移动技术  | 我要评论

实际上我们通常是使用webview控件对本地html进行读取,这样就可以体会类似web app和安卓原生混合开发的乐趣了。在读取本地html并展示在前台的时候,并不需要在androidmenifast.xml文件当中设置相应的网络权限,也不需要设置https协议,因为安卓手机的本地服务器应该都是基于http协议的,一个手机又不可能去申请一个ssl安全证书。我们只需要把webview控件访问基于http协议的网络的代码稍作修改即可,在写代码之前,我们还需要创建一个assets文件夹,将我们所对应的html文件放置在这个文件夹里,具体创建这个文件夹的过程可以参见这篇博客:   

我们的代码如下:

 mainactivity.java

import android.support.v7.app.appcompatactivity;
import android.os.bundle;
import android.net.http.sslerror;
import android.os.bundle;
import android.support.v7.app.appcompatactivity;
import android.webkit.sslerrorhandler;
import android.webkit.websettings;
import android.webkit.webview;
import android.webkit.webviewclient;

public class mainactivity extends appcompatactivity {
    private webview webview;
    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_main);
        init();
    }

    private void init(){
        webview = (webview) findviewbyid(r.id.webview);
        //需要加载的网页的url
        webview.loadurl("file:///android_asset/index2.html");//这里写的是assets文件夹下html文件的名称,需要带上后面的后缀名,前面的路径是安卓系统自己规定的android_asset就是表示的在assets文件夹下的意思。
        webview.getsettings().setlayoutalgorithm(websettings.layoutalgorithm.single_column);//自适应屏幕
        webview.getsettings().setloadwithoverviewmode(true);//自适应屏幕
        webview.getsettings().setsupportzoom(true);
        webview.getsettings().setusewideviewport(true);//扩大比例的缩放
        webview.getsettings().setbuiltinzoomcontrols(true);//设置是否出现缩放工具
        websettings settings = webview.getsettings();
        // 如果访问的页面中要与javascript交互,则webview必须设置支持javascript
        settings.setjavascriptenabled(true);
        webview.setwebviewclient(new webviewclient(){
            public boolean shouldoverrideurlloading(webview view, string url){
                view.loadurl(url);
                return true;
            }
        });}

}

我觉得上面注释也写得比较详细了,可以根据自己的需求根据注释作一些必要的更改。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网